Amazon SES viết tắt của Amazon Simple Email Service. Đây là một dịch vụ gửi email có chi phí thấp và có khả năng mở rộng, cho phép các nhà phát triển gửi email từ bất kỳ ứng dụng nào. Amazon SES có thể được cấu hình nhanh chóng để hỗ trợ nhiều mục đích sử dụng email khác nhau, như gửi email giao dịch, tiếp thị hoặc gửi email hàng loạt. Amazon SES cho phép chúng ta gửi email một cách an toàn, toàn cầu và trên quy mô lớn.

Boto3 SDK là một thư viện Python dành cho AWS. Để cài đặt phiên bản mới nhất của Boto3 SDK, chúng ta sử dụng câu lệnh sau đây:

pip install boto3code-box

Thiết lập identity trên Amazon SES

Trước khi gửi email đi, bạn cần đảm bảo rằng email người gửi đã được thiết lập trên Amazon SES. Bước thực hiện như sau:

Bước 1: Truy cập vào chức năng Amazon SES. Sau đó đi đến menu Verified identities dưới mục Configuration:


Bước 2: Bấm vào nút Create identity để tạo mới, sau đó chọn loại identuty là Email address, nhập địa chỉ email của bạn.


Để hoàn thành, nhấn nút Create identity.

Bước 3: Bạn sẽ nhận được một email chứa liên kết xác thực từ Amazone, bạn nhấn vào liên kết để tiến hành xác nhận email.

Gửi email đơn giản, không có đính kèm

Để gửi một email đơn giản, không cần đính kèm tập tin thì chúng ta có thể sử dụng hàm send_email được cung cấp trong thư viện Boto3.

# Import thư viện boto3
import boto3
# Khởi tạo client
client = boto3.client('ses')
# Nếu bạn viết hàm Lambda trên AWS, có thể thiết lập region bằng câu lệnh sau:
# Thay ap-southeast-1 bằng region của bạn
# client = boto3.client('ses', region_name='ap-southeast-1')
# Thiết lập thông số:
CHARSET = 'UTF-8'
SENDER = 'sender@domain.com'
# Gửi email đơn giản bằng hàm send_email
response = client.send_email(
Source=SENDER,
Destination={
'ToAddresses': ['receiver@domain.com', 'receiver2@domain.com'],
'CcAddresses': ['ccreceiver@domain.com'],
'BccAddresses': ['bccreceiver@domain']
},
Message={
'Subject': {
'Data': 'Đây là một email ví dụ',
'Charset': CHARSET
},
'Body': {
'Html': {
'Data': '<html><body><h1>Xin chào bạn</h1><p>Đây là một email ví dụ gửi email bằng Python và Boto3.</p></body></html>',
'Charset': CHARSET
}
}
},
)


Gửi Raw Email có đính kèm

Để gửi email mà có đính kèm một hoặc nhiều tài liệu thì chúng ta có thể sử dụng hàm send_raw_email được cung cấp trong thư viện Boto3.

# Import thư viện boto3
import boto3
import os
# Import thư viện gửi raw email
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
# Khởi tạo client
client = boto3.client('ses')
# Nếu bạn viết hàm Lambda trên AWS, có thể thiết lập region bằng câu lệnh sau:
# Thay ap-southeast-1 bằng region của bạn
# client = boto3.client('ses', region_name='ap-southeast-1')
SENDER = 'sender@domain.com'
RECEIVER = 'receiver@domain.com'
CHARSET = 'UTF-8'
# Khai báo message
msg = MIMEMultipart('mixed')
msg['Subject'] = 'Đây là một email ví dụ với tập tin đính kèm'
msg['From'] = SENDER
msg['To'] = RECEIVER
msg_body = MIMEMultipart('alternative')
# Nội dung email với ngôn ngữ HTML
BODY_HTML = '<html><body><h1>Xin chào bạn</h1><p>Đây là một email ví dụ gửi email bằng Python và Boto3 (có tập tin đính kèm).</p></body></html>'
htmlpart = MIMEText(BODY_HTML.encode(CHARSET), 'html', CHARSET)
msg_body.attach(htmlpart)
# Đường dẫn đến tập tin cần đính kèm.
FILE1 = "path/to/file1.pdf"
FILE2 = "path/to/file2.pdf"
# Thêm đính kèm vào email
att1 = MIMEApplication(open(FILE1, 'rb').read())
att1.add_header('Content-Disposition', 'attachment',
filename=os.path.basename(FILE1))
att2 = MIMEApplication(open(FILE2, 'rb').read())
att2.add_header('Content-Disposition', 'attachment',
filename=os.path.basename(FILE2))
msg.attach(msg_body)
msg.attach(att1)
msg.attach(att2)
try:
# Gửi email với tập tin đính kèm bằng hàm send_raw_email
response = client.send_raw_email(
Source=SENDER,
Destinations=[
RECEIVER
],
RawMessage={
'Data': msg.as_string(),
}
)
print("ID của email: ", response['MessageId'])
print("Gửi email thành công!")
except Exception as e:
print("Lỗi: ", e)



Post a Comment

Mới hơn Cũ hơn