Gửi email bằng Python

Email tự động được sử dụng rộng rãi để gửi thông báo hoặc các tin nhắn khác đến người đăng ký. Ngoài ra, các email khác nhau được kích hoạt dựa trên các hành động hoặc hành vi của người dùng. Để thực hiện tự động hóa email, bài viết này trình bày cách gửi email qua SMTP bằng Python. Ngoài ra, chúng tôi sẽ trình bày cách tạo một email với văn bản thuần túy hoặc nội dung HTML từ đầu.

Thư viện Python để gửi email qua SMTP

Để tạo và gửi email bằng SMTP, chúng tôi sẽ sử dụng Aspose.Email for Python qua .NET. Nó là một thư viện Python mạnh mẽ cho phép bạn triển khai các ứng dụng email khách có nhiều tính năng. Bạn có thể cài đặt API từ PyPI bằng lệnh sau.

pip install Aspose.Email-for-Python-via-NET

Hoặc, bạn có thể làm theo các bước dưới đây để cài đặt thủ công.

  • Tải xuống tệp .whl có thể cài đặt từ phần tải xuống.
  • Từ dòng lệnh, sử dụng lệnh: pip install «FileName> > .whl để cài đặt API.
  • Tải xuống gói mẫu mã nguồn hoàn chỉnh từ GitHub.

Gửi email qua SMTP bằng Python

Sau đây là các bước để tạo và gửi email qua SMTP bằng Python.

  • Tạo một đối tượng của lớp MailMessage.
  • Đặt chủ đề, nội dung, địa chỉ của người gửi và người nhận.
  • Đặt Cc hoặc Bcc (tùy chọn).
  • Tạo một ứng dụng khách SMTP mới bằng cách sử dụng lớp SmtpClient và đặt máy chủ lưu trữ, cổng, tên người dùng và mật khẩu.
  • Đặt các tùy chọn bảo mật.
  • Gửi email bằng phương pháp SmtpClient.send (MailMessage).

Mẫu mã sau đây cho thấy cách tạo và gửi email bằng Python.

# Tạo tin nhắn email
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is plain text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Tạo ứng dụng khách SMTP
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Gửi email
client.send(eml)

Gửi email bằng HTML Body bằng Python

Sau đây là các bước để gửi email với nội dung HTML bằng Python.

  • Tạo một đối tượng của lớp MailMessage.
  • Đặt nội dung email bằng thuộc tính MailMessage.bodyhtml.
  • Đặt thuộc tính MailMessage.isbodyhtml thành true.
  • Chỉ định chủ đề, địa chỉ người gửi và người nhận.
  • Đặt Cc hoặc Bcc (tùy chọn).
  • Tạo một ứng dụng khách SMTP mới bằng cách sử dụng lớp SmtpClient và đặt máy chủ lưu trữ, cổng, tên người dùng và mật khẩu.
  • Gửi email bằng phương pháp SmtpClient.send (MailMessage).

Mẫu mã sau đây cho thấy cách gửi email với nội dung HTML bằng Python.

# Tạo email bằng nội dung HTML
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.is_body_html = True
eml.html_body = "<html><body>This is the <b>HTML</b>body</body></html>"
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Tạo ứng dụng khách SMTP
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Gửi email
client.send(eml)

Mã Python để gửi hàng loạt email

Sau đây là các bước để gửi email hàng loạt bằng Python.

  • Tạo nhiều email bằng cách sử dụng lớp MailMessage và đặt các thuộc tính của chúng, chẳng hạn như chủ đề, người nhận, v.v.
  • Tạo một đối tượng của lớp MailMessageCollection.
  • Thêm email vào bộ sưu tập bằng phương pháp MailMessageCollection.append (MailMessage).
  • Tạo một ứng dụng khách SMTP mới bằng cách sử dụng lớp SmtpClient và đặt máy chủ lưu trữ, cổng, tên người dùng và mật khẩu.
  • Gửi email bằng phương pháp SmtpClient.send (MailMessageCollection).

Mẫu mã sau đây cho thấy cách gửi email hàng loạt qua SMTP bằng Python.

# Tạo nhiều email
message1 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message1, how are you?")
message2 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message2, how are you?")
message3 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message3, how are you?")

# Thêm tin nhắn vào bộ sưu tập
manyMsg =  MailMessageCollection()
manyMsg.append(message1)
manyMsg.append(message2)
manyMsg.append(message3)

# Tạo ứng dụng khách SMTP
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Gửi email
client.send(manyMsg)

Làm thế nào để chuyển tiếp một tin nhắn email bằng Python

Sau đây là các bước để chuyển tiếp một email bằng Python.

  • Tải thông điệp email vào một đối tượng bằng phương thức MailMessage.load (String fileName).
  • Đặt địa chỉ của người nhận.
  • Tạo một ứng dụng khách SMTP bằng cách sử dụng lớp SmtpClient.
  • Chuyển tiếp thư bằng phương thức SmtpClient.osystem().

Mẫu mã sau đây cho thấy cách chuyển tiếp một email bằng Python.

# Tải thông báo email để được chuyển tiếp
eml = MailMessage.load("Message.eml")

# Đặt người nhận
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Gửi bằng Smtp Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
client.forward("Recipient1@domain.com", "Recipient2@domain.com", eml)

Thư viện Python để gửi email - Nhận giấy phép miễn phí

Bạn có thể nhận được Giấy phép tạm thời miễn phí và gửi email qua SMTP mà không có giới hạn đánh giá.

Thư viện email Aspose cho Python - Demo trực tiếp

Sự kết luận

Trong bài viết này, bạn đã học cách tạo và gửi email qua SMTP bằng Python. Hơn nữa, bạn đã thấy cách gửi hàng loạt email với văn bản thuần túy hoặc nội dung HTML theo lập trình. Bạn có thể khám phá thêm về API email Python bằng cách sử dụng tài liệu. Trong trường hợp bạn có bất kỳ câu hỏi hoặc thắc mắc nào, vui lòng cho chúng tôi biết qua diễn đàn của chúng tôi.

Xem thêm