Hướng dẫn python smtp read email - python smtp đọc email
Bạn cần gì để gửi email với Python? Chỉ một chút kiến thức lập trình web sử dụng Python cơ bản. Hướng dẫn này sẽ hướng dẫn bạn qua các bước cần thiết nhất để gửi email qua máy chủ SMTP: Show
Gửi email bằng cách sử dụng SMTPTin tốt đầu tiên về Python là nó có một module tích hợp sẵn để gửi email qua SMTP trong thư viện chuẩn của nó. Không cần cài đặt thêm hoặc thủ thuật. Bạn có thể nhập module bằng cách sử dụng câu lệnh sau:
Để đảm bảo rằng module đã được nhập đúng cách và có được mô tả đầy đủ về các lớp và đối số của nó, hãy nhập một Python session:
Ở bước tiếp theo, mình sẽ nói một chút về cách cấu hình máy chủ SMTP. Tạo một máy chủ SMTP để test email trong PythonKhi viết một ứng dụng mới hoặc thêm bất kỳ chức năng nào, đặc biệt là khi thực hiện lần đầu tiên, bạn nên test nó trên một máy chủ thử nghiệm. Dưới đây là vài lý do bạn rất cần làm việc đó:
Và với Python bạn có 2 lựa chọn để tạo một máy chủ để test :3 tạo một local SMTP serverNếu bạn thích làm việc trong môi trường local, máy chủ SMTP local là một lựa chọn rất hợp lý. Python cung cấp một module smtpd. Nó có tính năng DebuggingServer, sẽ loại bỏ các email bạn đang gửi và sẽ in chúng ra ở stdout. Để chạy SMTP server ở cổng 1025 bạn sẽ dùng lệnh sau:
Để chạy máy chủ SMTP trên cổng 25, bạn sẽ cần có quyền root:
Nó sẽ giúp bạn xác minh xem mã của bạn có hoạt động hay không và chỉ ra các vấn đề có thể xảy ra nếu có. Tuy nhiên, với nó bạn không có cơ hội kiểm tra mẫu email HTML của bạn được hiển thị như thế nào. Lúc này một server SMTP giả sẽ thứ bạn tìm tới. Giả SMTP serverMáy chủ SMTP giả bắt chước công việc của máy chủ thực sự. Trong các ví dụ khác trong bài viết này, mình sẽ sử dụng Mailtrap. Ngoài việc kiểm tra gửi email, nó sẽ cho phép chúng ta kiểm tra xem email sẽ được hiển thị và hiển thị như thế nào, xem lại dữ liệu thô của tin nhắn cũng như sẽ cung cấp cho chúng ta một báo cáo spam. Mailtrap rất dễ thiết lập: bạn sẽ chỉ cần sao chép thông tin đăng nhập do ứng dụng tạo ra và dán chúng vào mã của bạn. Đây là cách bạn cài đặt nó:
Mailtrap làm cho mọi thứ thậm chí dễ dàng hơn. Chuyển đến phần Tích hợp trong tab Cài đặt SMTP và một template mail đơn giản được cung cấp sẵn, với thông tin đăng nhập Mailtrap của bạn trong đó. Đây là tùy chọn cơ bản nhất để hướng dẫn Python script của bạn về việc gửi mail: Code trông khá đơn giản, phải không? Chúng ta hãy xem xét kỹ hơn về nó và thêm một số phương thức xử lý lỗi (xem #explanations ở giữa). Để bắt lỗi, chúng tôi sử dụng các khối “try” và “except”.
Khi bạn nhận được kết quả Đã gửi trong Shell, bạn sẽ thấy tin nhắn của mình trong hộp thư đến Mailtrap:
Gửi email với định dạng HTMLTrong hầu hết các trường hợp, bạn cần thêm một số định dạng, liên kết hoặc hình ảnh email của bạn. Chúng ta chỉ cần đặt tất cả những thứ này với nội dung HTML. Với mục đích này, Python có một email package. Chúng ta sẽ xử lý loại tin nhắn MIME, có thể kết hợp HTML và văn bản thuần túy. Trong Python, nó được xử lý bởi module email.mime. Tốt hơn hết chúng ta viết riêng một phiên bản văn bản và một phiên bản HTML, sau đó hợp nhất chúng với phiên bản MIMEMultipart ("thay thế"). Nó có nghĩa là một tin nhắn như vậy có hai tùy chọn render tương ứng. Trong trường hợp HTML không được hiển thị thành công vì một số lý do nào đó, phiên bản văn bản vẫn sẽ có sẵn. Đầu vào:
Kết quả: Gửi email với tệp đính kèm trong PythonBước tiếp theo trong việc thành thạo gửi email bằng Python là đính kèm tệp. Tệp đính kèm vẫn là đối tượng của MIME nhưng chúng ta cần mã hóa chúng bằng module base64. Một vài điểm quan trọng về các tệp đính kèm:
Đầu vào:
Kết quả: Để đính kèm nhiều tệp, bạn có thể gọi phương thức message.attach () nhiều lần. Cách gửi email có đính kèm hình ảnhHình ảnh, ngay cả khi chúng là một phần của nội dung thư, cũng là tệp đính kèm. Có ba loại trong số chúng: tệp đính kèm CID (được nhúng dưới dạng đối tượng MIME), hình ảnh định dạng base64 (nhúng trong code) và hình ảnh được liên kết. Để thêm tệp đính kèm CID, chúng tôi sẽ tạo một email MIME với thành phần MIMEImage: Đầu vào:
Kết quả: Để đính kèm nhiều tệp, bạn có thể gọi phương thức message.attach () nhiều lần. Cách gửi email có đính kèm hình ảnh
Kết quả: Để đính kèm nhiều tệp, bạn có thể gọi phương thức message.attach () nhiều lần. Cách gửi email có đính kèm hình ảnhHình ảnh, ngay cả khi chúng là một phần của nội dung thư, cũng là tệp đính kèm. Có ba loại trong số chúng: tệp đính kèm CID (được nhúng dưới dạng đối tượng MIME), hình ảnh định dạng base64 (nhúng trong code) và hình ảnh được liên kết. Để thêm tệp đính kèm CID, chúng tôi sẽ tạo một email MIME với thành phần MIMEImage: Hình ảnh CID được hiển thị cả dưới dạng một phần của thông điệp HTML và dưới dạng tệp đính kèm. Các thư có loại hình ảnh này thường được coi là thư rác: kiểm tra tab Analytics trong Mailtrap để xem tỷ lệ spam và các đề xuất về cải tiến của nó. Nhiều ứng dụng email - cụ thể là Gmail - không thể hiển thị hình ảnh CID trong hầu hết các trường hợp. Vì vậy, hãy cùng xem lại cách nhúng hình ảnh được mã hóa base64. 0Ở đây mình sẽ sử dụng module base64 và thử nghiệm với cùng một tệp ảnh: Đầu vào: 1Bây giờ hình ảnh được nhúng vào thông điệp HTML và không hiển thị dưới dạng tệp đính kèm. Python đã mã hóa hình ảnh jpg của mình và nếu chúng ta đi đến tab Nguồn HTML, chúng ta sẽ thấy chuỗi dữ liệu hình ảnh dài trong img src. 2Kết quả:
|