В условиях растущей экономики и эпохи хранения огромных массивов данных 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 для отправки электронных писем с подтверждением завершения выполнения ваших лямбда-функций.
Примечание. Не забудьте удалить все, что вы создали, если вы просто тренируетесь.
Спасибо за чтение. До следующего раза, продолжайте учиться!