Làm cách nào để gửi email bằng AWS SES trong Python?

Như tiêu đề gợi ý, điều này nhằm mục đích gửi email bằng AWS Lambda bằng Python, CloudWatch và SES. Một trong những lợi thế của việc sử dụng AWS Lambda là nó cũng có thể dễ dàng được kết hợp với các dịch vụ email hoặc SMS khác, phát triển một giải pháp gửi thư hàng loạt hiệu quả về chi phí. Chức năng Lambda được kích hoạt bằng EventBridge được lên lịch chạy mỗi giờ để gửi email

Bước 1. AWS SES — Dịch vụ email đơn giản

Trước tiên, bạn cần xác minh địa chỉ email mà bạn muốn gửi email, bạn cũng cần xác minh email của người gửi

  1. Truy cập dịch vụ AWS SES

2. Tạo danh tính

3. Chọn Địa chỉ email làm Loại danh tính, sau đó nhập địa chỉ email bạn muốn xác minh và nhấp vào Tạo danh tính

4. Bạn sẽ nhận được email xác nhận để xác minh email bạn vừa nhập ở bước 3

5. Lặp lại Bước #3 và #4 để xác minh cả email của người gửi và người nhận

Bước 2. IAM AWS

Trong bước này, chúng ta cần tạo vai trò để cấp quyền cho tài nguyên AWS

  1. Goto IAM [Quản lý danh tính và truy cập]
  2. Chọn Vai trò trong Quản lý truy cập và nhấp vào Tạo vai trò
  3. Ở bước đầu tiên, dịch vụ AWS phải được chọn là Loại thực thể đáng tin cậy và Lambda là Trường hợp sử dụng
  4. Ở bước hai, hãy kiểm tra AmazonSESFullAccess và CloudWatchFullAccess dưới dạng chính sách Quyền

5. Ở bước cuối cùng, hãy đặt tên cho vai trò này và tạo nó

Bước 3. AWS Lambda
  1. Truy cập Dịch vụ AWS Lambda và nhấp vào Tạo chức năng
  2. Nhập chi tiết cơ bản tôi. e Tên hàm, đặt Thời gian chạy là Python 3. 9, bên dưới Thay đổi vai trò thực thi mặc định, chọn Sử dụng vai trò hiện có và chọn vai trò mà chúng ta vừa tạo ở bước 2 và nhấp vào Tạo Chức năng

3. Khi chức năng đã được tạo, chúng ta có thể viết mã Python sẽ gửi email đến người nhận. Bạn có thể tìm thấy mã trong kho lưu trữ sau. https. //github. com/RekhuGopal/PythonHacks/blob/main/AWSBoto3Hacks/AWSBoto3-SES-Lambda. py

4. Nhấp vào Triển khai để triển khai mã

5. Bạn cũng có thể kiểm tra nó bằng cách nhấp vào nút Kiểm tra, bạn cần tạo sự kiện. Chọn Tạo sự kiện mới, nhập tên Sự kiện và nhấp vào Lưu. Sau khi sự kiện được lưu, nhấp vào Kiểm tra để thực hiện sự kiện, nếu nó chạy thành công, bạn sẽ nhận được email như bạn đã đề cập trong mã

Bước 4. Cầu sự kiện AWS

Chúng tôi muốn lên lịch quy trình này sẽ chạy theo lịch trình mong muốn của chúng tôi, chúng tôi có thể sử dụng AWS EventBridge để tự động hóa quá trình này

  1. Tới AWS EventBridge
  2. Chọn Quy tắc trong menu thả xuống Sự kiện từ ngăn cửa sổ bên trái và nhấp vào Tạo quy tắc
  3. Điền vào các chi tiết quy tắc tôi. e Tên quy tắc, Mô tả và đặt Loại quy tắc là Đã lên lịch

4. Sau đó, chúng ta có thể xác định lịch trình về tần suất kích hoạt hàm lambda. Đặt theo mong muốn của bạn

5. Chọn hàm Lambda làm Dịch vụ đích và tên hàm mà chúng ta đã tạo ở Bước #3

6. bước tiếp theo là tùy chọn bạn có thể điền nếu muốn và trong bước cuối cùng Xem lại chi tiết và Tạo quy tắc

Và đó là tất cả. Chúng tôi đã tạo hàm AWS Lambda bằng Python để gửi email và tự động hóa quy trình này bằng AWS EventBridge

Khi mọi thứ đã ổn định, hãy làm theo các hướng dẫn sau để lấy tên người dùng và mật khẩu cho máy chủ SMTP

Gửi email với Amazon SES bằng Python

Một vài giải pháp khác nhau có sẵn cho email bằng Python. Yêu thích của tôi là email, rất đơn giản và hiệu quả
Cài đặt nó bằng cách sử dụng pip trong dòng lệnh

$ pip install emails  

Sau đó, bạn có thể gửi email bằng bất kỳ tập lệnh Python nào chỉ với một vài dòng mã. Để sử dụng Amazon SES với SMTP, bạn chỉ cần sử dụng cổng 587 và xác thực TLS. Phần còn lại khá đơn giản
Đây là một ví dụ nhanh

import emails

# Prepare the email
message = emails.html[
    html="

My message

I've got something to tell you!"
, subject="A very important message", mail_from="from.email@example.com", ] # Send the email r = message.send[ to="to.email@example.com", smtp={ "host": "my-aws-smtp-server", "port": 587, "timeout": 5, "user": "my-aws-smtp-user", "password": "my-aws-smtp-pass", "tls": True, }, ] # Check if the email was properly sent assert r.status_code == 250

Bạn có thể sử dụng thư viện emails với bất kỳ máy chủ SMTP nào khác, cũng như đính kèm tệp và nhiều tính năng khác. Kiểm tra tài liệu để biết thêm

Tôi có thể sử dụng AWS SES để gửi email không?

Dịch vụ email đơn giản của Amazon [SES] là dịch vụ email tiết kiệm chi phí được xây dựng trên cơ sở hạ tầng đáng tin cậy và có thể mở rộng mà Amazon. com được phát triển để phục vụ cơ sở khách hàng của riêng mình. Với Amazon SES, bạn có thể gửi email giao dịch, tin nhắn tiếp thị hoặc bất kỳ loại nội dung chất lượng cao nào khác cho khách hàng của mình .

Làm cách nào để gửi email bằng ses lambda python?

Độ phân giải .
Tạo vai trò thực thi và chính sách IAM cho Lambda để chạy lệnh gọi API. Tạo chính sách IAM bằng trình chỉnh sửa chính sách JSON. .
Xác minh danh tính Amazon SES của bạn [tên miền hoặc địa chỉ email].
Tạo hoặc cập nhật một hàm Lambda bao gồm logic để gửi email qua Amazon SES. .
[Tùy chọn] Gửi email kiểm tra

Phương pháp nào được sử dụng để gửi email với SES?

Amazon SES gửi email bằng cách sử dụng SMTP , đây là giao thức email phổ biến nhất trên internet. Bạn có thể gửi email qua Amazon SES bằng cách sử dụng nhiều ngôn ngữ lập trình và phần mềm hỗ trợ SMTP để kết nối với giao diện SMTP của Amazon SES.

SES có thể gửi email cho bất kỳ ai không?

Không. Bạn chỉ có thể sử dụng Amazon SES để gửi email từ các địa chỉ hoặc miền mà bạn sở hữu . Để chứng minh rằng bạn sở hữu một địa chỉ email hoặc miền, bạn phải xác minh địa chỉ đó. Ở mỗi Khu vực AWS, bạn có thể xác minh tối đa 10.000 địa chỉ email và miền, theo bất kỳ cách kết hợp nào.

Chủ Đề