paint-brush
Sử dụng Python để gửi thông báo qua email (Đã bao gồm mã ví dụ)từ tác giả@suprsend
6,172 lượt đọc
6,172 lượt đọc

Sử dụng Python để gửi thông báo qua email (Đã bao gồm mã ví dụ)

từ tác giả Nik L.7m2023/03/30
Read on Terminal Reader

dài quá đọc không nổi

Có bốn cách khác nhau để gửi email giao dịch bằng Python. Mô-đun SMTP có thể được sử dụng để gửi email bằng Giao thức chuyển thư đơn giản. Bạn có thể sử dụng mô-đun MIMEText hoặc EmailMessage để tạo và định dạng thư. Có một số nhược điểm tiềm ẩn khi sử dụng SMTP để gửi email python.
featured image - Sử dụng Python để gửi thông báo qua email (Đã bao gồm mã ví dụ)
Nik L. HackerNoon profile picture
0-item



Thông báo qua email là một cách tuyệt vời để thông báo cho người dùng của bạn về các sự kiện hoặc cập nhật quan trọng trong ứng dụng của bạn, chẳng hạn như một tin nhắn mới, đặt lại mật khẩu hoặc lỗi hệ thống. Có nhiều phương pháp để gửi thông báo qua email và mặc dù quy trình có thể không phức tạp nhưng điều quan trọng là chọn phương pháp phù hợp với nhu cầu của bạn.


Trong blog này, chúng ta sẽ xem xét cách gửi email bằng Python với sự trợ giúp của các đoạn mã. Chúng tôi cũng sẽ so sánh mô-đun SMTP được sử dụng trong Python với các giải pháp phổ biến khác.


Điều kiện tiên quyết

Trước khi bắt đầu với hướng dẫn này, có một vài điều bạn sẽ cần phải tận dụng tối đa nó.


  1. Python được cài đặt trên máy của bạn
  2. Hiểu biết cơ bản về Python & CLI
  3. Thiết lập tài khoản AWS và hiểu biết về AWS SES
  4. Tài khoản Suprsend đang hoạt động (với các nhà cung cấp được định cấu hình)


Với những điều này trong tâm trí, bạn nên sẵn sàng để bắt đầu!

4 cách khác nhau để gửi thông báo qua email với Python

Phần này sẽ thảo luận về bốn cách khác nhau mà nhà phát triển có thể gửi email giao dịch bằng Python.

Sử dụng Mô-đun smtplib của Python

Mô-đun smtplib Python có thể gửi email bằng Giao thức chuyển thư đơn giản ( SMTP ). SMTP là một giao thức được sử dụng để gửi và nhận email. Mô-đun smtplib bao gồm các chức năng có thể được sử dụng để kết nối với máy chủ SMTP và gửi email. Mô-đun này cũng bao gồm các chức năng có thể xác thực với máy chủ SMTP.

Lợi ích của việc sử dụng Mô-đun Python smtplib

Có nhiều lợi ích khi sử dụng mô-đun smtplib . Ví dụ: bạn có thể sử dụng smtplib để:

  • Gửi email từ chương trình Python của bạn
  • Gửi email từ một tập lệnh (tập lệnh tự động, công việc ngô, v.v.)
  • Gửi email hàng loạt
  • Gửi email HTML
  • Gửi tệp đính kèm

Hạn chế của Mô-đun smtplib

Có một số nhược điểm tiềm ẩn khi sử dụng SMTP để gửi email python. Một là nó có thể kém tin cậy hơn các phương pháp khác; đôi khi, email được gửi qua SMTP bị thất lạc hoặc nằm trong thư mục thư rác.


Ngoài ra, SMTP dựa trên một số giao thức phức tạp, gây khó khăn cho việc định cấu hình và khắc phục sự cố. Việc duy trì và nâng cấp máy chủ SMTP cũng có thể đòi hỏi thêm chi phí.

Các bước để gửi email qua SMTP Mô-đun Python

Bạn có thể sử dụng mô-đun MIMEText hoặc EmailMessage để tạo và định dạng thư. Dưới đây là các bước để gửi email bằng Python với mô-đun smtplibMIMEText .

  • Nhập mô-đun smtplibMIMEText từ thư viện email.
  • Tạo một đối tượng MIMEText mới và đặt nội dung email, người gửi, người nhận và chủ đề.
  • Thiết lập kết nối đến máy chủ SMTP bằng hàm smtplib.SMTP() , chuyển tên máy chủ của máy chủ làm đối số.
  • Sử dụng hàm send_message() để gửi email.
  • Sử dụng hàm quit() để đóng kết nối với máy chủ.
  • Sử dụng khối thử/ngoại trừ để bắt bất kỳ ngoại lệ nào có thể được đưa ra trong quá trình gửi.

Đoạn mã

Lưu ý: Thay thế địa chỉ máy chủ SMTP (localhost) bằng địa chỉ máy chủ của bạn trước khi chạy mã bên dưới.

Mô-đun SMTP

Nhà cung cấp dịch vụ email giao dịch

Nhà cung cấp dịch vụ email giao dịch (TESP) cho phép doanh nghiệp gửi email giao dịch. Có nhiều tùy chọn để lựa chọn, bao gồm Amazon SES, Mailgun, Sendgrid, Postmark và Sparkpost, mỗi tùy chọn đều có những lợi ích và tính năng riêng.

Điều quan trọng là chọn một TESP đáp ứng nhu cầu của bạn về giá cả, tốc độ phân phối, khả năng mở rộng và hỗ trợ, đồng thời cung cấp API mạnh để tích hợp vào hệ thống của bạn.

Lợi ích của nhà cung cấp dịch vụ email giao dịch

Nhà cung cấp dịch vụ email giao dịch (TESP) cung cấp một số lợi thế so với nhà cung cấp email truyền thống.

  • TESP được thiết kế để cung cấp mức dịch vụ và độ tin cậy cao hơn cho các doanh nghiệp dựa vào email để liên lạc với khách hàng của họ.
  • TESP có thể cung cấp một cách hiệu quả về chi phí để gửi email giao dịch, vì chúng thường tính phí dựa trên số lượng email được gửi hoặc nhận.
  • TESP thường cung cấp một số tính năng không có sẵn với các nhà cung cấp email truyền thống, chẳng hạn như địa chỉ IP chuyên dụng, giám sát thời gian thực và báo cáo gửi.

Hạn chế của nhà cung cấp dịch vụ email giao dịch

  • TESP có thể khó thiết lập và sử dụng, dẫn đến nhu cầu về các nhà phát triển.
  • TESP thường cung cấp tích hợp dựa trên API; do đó, bố cục nội dung email, chẳng hạn như các mẫu HTML, phải được tích hợp thông qua API.
  • TESP có thể tiết kiệm chi phí khi gửi một khối lượng email tương đối thấp, nhưng khi khối lượng tăng lên, nó có thể trở thành một lựa chọn đắt tiền.
  • Cấu hình kém có thể dẫn đến việc gửi email vào thư mục thư rác. Một số TESP nhất định có thể có cấu hình gửi email dưới mức tối ưu, chẳng hạn như sử dụng địa chỉ IP có tiếng xấu được chia sẻ giữa nhiều người dùng.

Phần này sẽ sử dụng Python với AWS SES để gửi email. AWS SES là dịch vụ email dựa trên đám mây cho phép bạn gửi và nhận email một cách an toàn. Nó cung cấp một mô hình định giá hiệu quả về chi phí, thanh toán theo mức sử dụng và cung cấp một nền tảng có thể mở rộng, đáng tin cậy và an toàn để gửi email.

Các bước để gửi email bằng AWS SES

Chúng tôi sẽ sử dụng thư viện Boto3 để tương tác với AWS SES. Dưới đây là các bước tiếp theo trong AWS SES gửi email quy trình python.

  • Nhập các thư viện và mô-đun cần thiết: boto3 và ClientError từ botocore.exceptions .
  • Xác định hàm send_email(), hàm này nhận sáu đối số: địa chỉ email của người gửi và người nhận, chủ đề và nội dung của email cũng như tên của khu vực AWS nơi đặt dịch vụ SES.
  • Tạo ứng dụng khách mới cho dịch vụ SES trong khu vực đã chỉ định bằng cách sử dụng hàm boto3.client() .
  • Sử dụng phương thức send_email() của ứng dụng khách SES để gửi email, chỉ định nội dung của email (chủ đề, nội dung, người nhận) trong các tham số Đích và Thư.
  • Phát hiện bất kỳ lỗi nào khi gửi email bằng cách sử dụng khối try-except và in thông báo lỗi.
  • Nếu email được gửi thành công, trả về True . Nếu không, hãy trả về False .

Đoạn mã

Gửi email từ Amazon SES

Sử dụng Suprsend

Suprsend là một nền tảng cho phép các nhà phát triển tạo và quản lý thông báo trên nhiều kênh, chẳng hạn như email, SMS, thông báo đẩy, tin nhắn hộp thư đến và trò chuyện.


Quy trình công việc SuprSend đơn giản hóa quy trình xây dựng và quản lý các thông báo phức tạp cũng như theo dõi hiệu suất để theo dõi hiệu quả của các tin nhắn. Sử dụng một API duy nhất, hợp lý hóa quy trình gửi và loại bỏ nhu cầu cho các nhà phát triển viết lớp dịch vụ thông báo của riêng họ.

Lợi ích của việc sử dụng Suprsend:

  • Nó có khả năng mở rộng cao và có thể được sử dụng để phát triển thông báo cho bất kỳ số lượng người dùng nào.
  • SuprSend được tích hợp sẵn với TESP(s) SMTP và Gmail SMTP, vì vậy các nhà phát triển không cần phải thiết lập hoặc tích hợp API điểm-điểm với chúng. Tính năng này cho phép chuyển đổi liền mạch giữa các nhà cung cấp mà không bị ràng buộc vào một nhà cung cấp cụ thể.
  • SDK Python của SuprSend cho phép các nhà phát triển dễ dàng kích hoạt thông báo đa kênh bằng một trình kích hoạt duy nhất. Điều này có thể cực kỳ hữu ích cho các ứng dụng giao tiếp với nhiều kênh hoặc thiết bị.
  • Suprsend không yêu cầu bất kỳ thiết lập hoặc bảo trì cơ sở hạ tầng nào. Đó là một giải pháp dựa trên đám mây dễ sử dụng và mở rộng quy mô.

Các bước để gửi email bằng SuprSend

Cài đặt Suprsend Python SDK

Để bắt đầu, trước tiên hãy cài đặt Suprsend Python SDK bằng lệnh sau:

pip install suprsend-py-sdk

Để gửi thông báo bằng Suprsend, bạn cần có Khóa và bí mật của Workspace (để xác thực). Bạn có thể sửa đổi quy trình làm việc và mẫu thông báo mặc định hoặc có thể tạo một quy trình làm việc và mẫu mới.

Lưu ý: Chúng tôi đã tạo một mẫu mẫu và quy trình làm việc trên nền tảng SuprSend cho hướng dẫn này.

Mã Python để gửi email bằng SuprSend

Thêm tệp đính kèm với email

Thêm tệp đính kèm email python bằng Suprsend là một miếng bánh. Thêm trực tiếp các đoạn mã sau vào tệp đính kèm qua đường dẫn tệp. Đối tượng dòng công việc sẽ giống như thế này:

Sử dụng Gmail SMTP

Gmail là một trong những nhà cung cấp email phổ biến nhất và vì một lý do chính đáng. Nó miễn phí, dễ sử dụng và có nhiều tính năng. Nhưng bạn có biết rằng bạn cũng có thể sử dụng Gmail với Python không?

Vâng đúng vậy! Bạn có thể sử dụng API Gmail để gửi và nhận email bằng Python. Và phần tốt nhất là nó thậm chí không quá khó. Phần này sẽ chỉ cho bạn cách gửi email bằng Gmail với Python.

Lợi ích của API Gmail

Có rất nhiều lợi ích khi sử dụng Gmail API để gửi email. Có lẽ lợi ích rõ ràng nhất là nó cho phép bạn gửi email trực tiếp từ tài khoản Gmail của mình, điều này có thể rất thuận tiện.

Ngoài ra, API Gmail có thể cung cấp trải nghiệm đáng tin cậy và phản hồi nhanh hơn các phương thức gửi email khác. Và bởi vì Gmail API được tích hợp với các dịch vụ khác của Google, nó có thể cung cấp một số tính năng và lợi thế độc đáo mà các nhà cung cấp dịch vụ email khác không thể sánh được.

Hạn chế của API Gmail

Có một vài nhược điểm khi sử dụng Gmail API:

  • Để sử dụng API Gmail, bạn phải sử dụng thông tin đăng nhập email (tên người dùng và mật khẩu), những thông tin này kém an toàn hơn. Việc duy trì tài khoản sẽ luôn là một vấn đề nếu bạn dự định sử dụng một tài khoản dịch vụ riêng.
  • Gmail có các giới hạn cứng sau đối với việc gửi email:
  • Tin nhắn tối đa mỗi ngày: 2.000 (1.500 cho gửi nhiều lần & 500 cho tài khoản dùng thử)
  • Tổng số người nhận mỗi ngày: 10.000

Các công ty tránh sử dụng Gmail như một giải pháp email có thể mở rộng vì những hạn chế của nó.

Tìm hiểu thêm về giới hạn sử dụng Gmail API .

Đoạn mã

API Gmail

Phần kết luận

Và với điều đó, chúng tôi hy vọng đã cung cấp cho bạn một hướng dẫn toàn diện về cách sử dụng Python để gửi email. Nếu bạn đang tìm kiếm một giải pháp thông báo đa kênh có thể mở rộng và một cách để làm cho quy trình phát triển của bạn hợp lý và hiệu quả hơn, hãy xem SuprSend.


#email #amazonses #pythonemail


Tuyên bố miễn trừ trách nhiệm: Phần giới thiệu do AI tạo ra.‍