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ảnTrướ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
- 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 AWSTrong bước này, chúng ta cần tạo vai trò để cấp quyền cho tài nguyên AWS
- Goto IAM [Quản lý danh tính và truy cập]
- Chọn Vai trò trong Quản lý truy cập và nhấp vào Tạo vai trò
- Ở 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
- Ở 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- Truy cập Dịch vụ AWS Lambda và nhấp vào Tạo chức năng
- 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
- Tới AWS EventBridge
- 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
- Đ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