В условиях растущей экономики и эпохи хранения огромных массивов данных Amazon Web Services (AWS) превратился в одну из самых быстрорастущих платформ облачных вычислений, которой пользуются многие компании по всему миру. Бессерверные технологии - это будущее облачных вычислений. Amazon Web Services не просто предлагает сервисы для вычислений, виртуальных серверов, визуализации или виртуального хранилища, но если вы когда-нибудь задумываетесь о чем-то, что может помочь вам в управлении почтовыми сервисами, здесь появляется AWS с сервисом Simple Email Service - Amazon SES . Его можно легко интегрировать с уже существующим приложением или инфраструктурой, размещенной на AWS. В этом блоге основное внимание уделяется тому, как можно использовать этот сервис AWS с некоторым практическим опытом для начала работы.

Что такое Amazon Simple Email Service (SES)?

Amazon Simple Email Service (SES) - это экономичная, гибкая и масштабируемая почтовая служба, которая позволяет разработчикам отправлять почту из любого приложения. Используя SES, вы можете отправлять и получать электронные письма, используя свои адреса электронной почты и / или домены, и вы платите только за то, что используете. Этот сервис в основном используется для отправки как транзакционных, так и массовых электронных писем. SES можно легко интегрировать с Amazon EC2, AWS Lambda, Amazon SNS и многими другими. Например, вы хотите получить электронное письмо с подтверждением после завершения вашей лямбда-функции, выполняющей какое-либо выполнение, или вы хотите инициировать выполнение лямбда-функции, отправив электронное письмо. Вы можете быстро настроить Amazon SES для поддержки нескольких сценариев использования электронной почты, включая транзакционные, маркетинговые или массовые рассылки по электронной почте. Гибкое развертывание IP-адресов и параметры аутентификации электронной почты Amazon SES помогают повысить доставляемость и защитить репутацию отправителя, а аналитика при отправке измеряет влияние каждого электронного письма. Amazon SES позволяет безопасно, глобально и масштабно отправлять электронную почту.

В этом практическом руководстве мы увидим, как настроить Amazon Simple Email Service - SES, проверить адрес электронной почты с помощью SES, создать лямбда-функцию, создать роль IAM для лямбда-функции с некоторыми новыми политиками и, наконец, интегрировать Amazon SES. с AWS Lambda для отправки электронных писем с подтверждением завершения выполнения функции.

Для этого мы сделаем следующее:

  • Войдите в консоль AWS и перейдите на панель управления AWS IAM.
  • Создайте новую политику IAM и роль выполнения.
  • Проверка электронной почты с помощью консоли Amazon Simple Email Service.
  • Создайте лямбда-функцию с кодом, который будет выполняться для отправки электронного письма через Amazon SES.
  • Наконец, создайте новое тестовое событие на панели инструментов лямбда-функции.
  • Протестируйте всю реализацию, чтобы проверить, как функция Lambda вызывает Amazon SES для отправки электронного письма с подтверждением.

Шаги

Войдите в свою консоль AWS и перейдите в консоль IAM.

Нажмите Роли на левой навигационной панели. Выберите Создать роль.

Выберите «Лямбда» и нажмите «Далее: разрешения».

Следуя лучшим практикам AWS, рекомендуется создать политику только с необходимыми разрешениями. Нажмите «Создать политику» на панели «Создание роли».

Выберите SES в качестве сервиса, для которого вы хотите создать политику.

В разделе «Действия» разверните «Действие записи» и установите флажки для SendEmail и SendRawEmail.

После этого вы увидите политику, как показано ниже. Щелкните Далее: Теги.

Введите ключ и значение для своей политики и нажмите Далее: Обзор.

Введите имя для своей политики, просмотрите все детали и, когда закончите, нажмите «Создать политику».

Вернитесь на вкладку «Создать роль» и нажмите «Обновить».

Найдите политику, которую вы создали выше, установите флажок слева от политики и нажмите Далее: Теги.

Введите теги для своей роли. Щелкните Далее: Обзор.

Просмотрите прикрепленную политику и введите имя для роли. После этого нажмите «Создать роль».

Только что созданная роль будет отображаться в разделе ролей на консоли Amazon IAM. В строке поиска введите Simple Email Service и выберите услугу.

Вы перейдете в Простую службу электронной почты - консоль SES.

Щелкните Адреса электронной почты в разделе «Управление идентификацией» на левой навигационной панели.

Нажмите «Подтвердить новый адрес электронной почты», и появится модальное окно для ввода адреса электронной почты, который необходимо подтвердить. Введите адрес электронной почты и нажмите «Подтвердить этот адрес электронной почты». Убедитесь, что адреса электронной почты отправителя и получателя должны быть подтверждены для отправки и получения электронных писем. В этом блоге мы просто проверим один адрес электронной почты и будем использовать тот же адрес электронной почты, что и отправитель и получатель для электронных писем.

На проверенный адрес электронной почты вы получите письмо с подтверждением. Щелкните ссылку для подтверждения, чтобы подтвердить свой адрес электронной почты.

При нажатии на ссылку ваш адрес электронной почты будет проверен, и появится сообщение, как показано ниже.

После успешной проверки ваш адрес электронной почты будет проверен и появится в консоли SES со статусом проверки как подтвержденный.

Теперь перейдите в консоль AWS Lambda и нажмите Create function.

Установите переключатель справа от «Автор с нуля» и введите название своей функции. Выберите среду выполнения как Python 3.7.

Под ролью «Выполнение» выберите «Использовать существующую роль» и в раскрывающемся списке выберите роль, которую вы создали выше, и после этого нажмите «Создать функцию».

Вы перейдете к созданной панели инструментов лямбда-функции.

Теперь прокрутите вниз и под панелью редактора для кода функции вставьте следующий код:

  • Измените адрес электронной почты отправителя на адрес электронной почты, с помощью которого вы хотите отправить электронное письмо.
  • Измените адрес электронной почты получателя на адрес электронной почты, на который вы хотите получать электронное письмо.
  • Убедитесь, что оба адреса электронной почты (отправитель и получатель) подтверждены на панели управления Amazon Simple Email Service.
  • Измените регион AWS в зависимости от региона, в котором вы работаете.
  • Вы можете редактировать имя темы и текст HTML по своему усмотрению.
import boto3
from botocore.exceptions import ClientError
 
def lambda_handler(event, context):
    sender_email_address = 'sender's email address'
    receiver_email_address = 'receiver's email address'
    aws_region_name = "aws region"
    email_subject = "Subject name"
    html_body = ("<html>"
        "<body>"
        "<p>Dear Admin,</p>"
        "<br>"
        "<p>The email has been sent via Amazon SES.</p>"
        "</body>"
        "</html>")
    charset = "UTF-8"
    ses_resource = boto3.client('ses', region_name = aws_region_name)
    try:
        response = ses_resource.send_email(
                Destination = {
                    'ToAddresses': [
                        receiver_email_address,
                    ],
                },
                Message = {
                    'Body': {
                        'Html': {
                            'Charset': charset,
                            'Data': html_body,
                        },
                    },
                    'Subject': {
                        'Charset': charset,
                        'Data': email_subject,
                    },
                },
                Source = sender_email_address,
            )
    except ClientError as e:
        print("Email Delivery Failed! ", e.response['Error']['Message'])
    else:
        print("Email successfully sent to " + receiver_email_address + "!")

Поскольку для этого руководства проверяется только один адрес электронной почты, мы будем использовать тот же адрес электронной почты, что и адреса отправителя и получателя.

После этого вернитесь в верхнюю часть панели функций и нажмите «Тест», чтобы создать новое тестовое событие.

Выберите шаблон как hello-world и введите имя для тестового события, как показано ниже.

Не внося никаких других изменений, прокрутите вниз и нажмите «Создать».

Недавно созданное тестовое событие будет отображаться в раскрывающемся списке слева от кнопки «Тест».

Нажмите «Тест», и при успешном выполнении кода функции вы увидите результат «Выполнение» на новой вкладке в панели редактора, как показано ниже, с сообщением об успешном выполнении.

Проверьте почтовый ящик адреса электронной почты, который вы подтвердили на консоли SES, и вы увидите новое электронное письмо, полученное через Amazon SES с адреса электронной почты, который вы зарегистрировали в качестве отправителя в коде лямбда-функции.

Резюме

Напомним, в этом блоге мы исследовали, насколько легко настроить Amazon Simple Email Service - SES и интегрировать его с AWS Lambda для отправки электронных писем с подтверждением завершения выполнения ваших лямбда-функций.

Примечание. Не забудьте удалить все, что вы создали, если вы просто тренируетесь.

Спасибо за чтение. До следующего раза, продолжайте учиться!