Kết hợp tốt nhất với trăn
Bạn có thể tìm thấy hướng dẫn này vì bạn muốn gửi email bằng Python. Có lẽ bạn muốn nhận lời nhắc qua email từ mã của mình, gửi email xác nhận cho người dùng khi họ tạo tài khoản hoặc gửi email cho các thành viên trong tổ chức của bạn để nhắc họ thanh toán phí. Gửi email thủ công là một công việc tốn nhiều thời gian và dễ xảy ra lỗi, nhưng thật dễ dàng để tự động hóa bằng Python Show
Trong hướng dẫn này, bạn sẽ học cách
Bạn sẽ tìm thấy một số dịch vụ email giao dịch ở cuối hướng dẫn này, sẽ hữu ích khi bạn muốn gửi một số lượng lớn email Tải xuống miễn phí. Nhận một chương mẫu từ Thủ thuật Python. Cuốn sách chỉ cho bạn các phương pháp hay nhất về Python với các ví dụ đơn giản mà bạn có thể áp dụng ngay lập tức để viết mã Pythonic + đẹp hơn Bắt đầuPython đi kèm với mô-đun 7 tích hợp để gửi email bằng Giao thức chuyển thư đơn giản (SMTP). 7 sử dụng giao thức RFC 821 cho SMTP. Các ví dụ trong hướng dẫn này sẽ sử dụng máy chủ SMTP của Gmail để gửi email, nhưng các nguyên tắc tương tự cũng áp dụng cho các dịch vụ email khác. Mặc dù phần lớn các nhà cung cấp dịch vụ email sử dụng các cổng kết nối giống như các cổng kết nối trong hướng dẫn này, nhưng bạn có thể chạy tìm kiếm nhanh trên Google để xác nhận cổng kết nối của mìnhĐể bắt đầu với hướng dẫn này, hãy thiết lập tài khoản Gmail để phát triển hoặc thiết lập máy chủ gỡ lỗi SMTP loại bỏ email bạn gửi và in chúng ra dấu nhắc lệnh thay thế. Cả hai tùy chọn được đặt ra cho bạn dưới đây. Máy chủ gỡ lỗi SMTP cục bộ có thể hữu ích để khắc phục mọi sự cố với chức năng email và đảm bảo các chức năng email của bạn không có lỗi trước khi gửi bất kỳ email nào Loại bỏ các quảng cáolựa chọn 1. Thiết lập tài khoản Gmail để phát triểnNếu bạn quyết định sử dụng tài khoản Gmail để gửi email, tôi thực sự khuyên bạn nên thiết lập một tài khoản tạm thời để phát triển mã của mình. Điều này là do bạn sẽ phải điều chỉnh cài đặt bảo mật của tài khoản Gmail để cho phép truy cập từ mã Python của bạn và vì có khả năng bạn vô tình để lộ thông tin đăng nhập của mình. Ngoài ra, tôi thấy rằng hộp thư đến của tài khoản thử nghiệm của tôi nhanh chóng chứa đầy email thử nghiệm, đó là lý do đủ để thiết lập một tài khoản Gmail mới để phát triển Một tính năng thú vị của Gmail là bạn có thể sử dụng ký hiệu 1 để thêm bất kỳ công cụ sửa đổi nào vào địa chỉ email của mình, ngay trước ký hiệu 2. Ví dụ: thư được gửi tới 3 và 4 đều sẽ đến tại 5. Khi kiểm tra chức năng email, bạn có thể sử dụng chức năng này để mô phỏng nhiều địa chỉ đều trỏ đến cùng một hộp thư đếnĐể thiết lập địa chỉ Gmail để kiểm tra mã của bạn, hãy làm như sau
Nếu bạn không muốn giảm cài đặt bảo mật cho tài khoản Gmail của mình, hãy xem tài liệu của Google về cách lấy thông tin đăng nhập truy cập cho tập lệnh Python của bạn, sử dụng khung ủy quyền OAuth2 Lựa chọn 2. Thiết lập máy chủ SMTP cục bộBạn có thể kiểm tra chức năng email bằng cách chạy máy chủ gỡ lỗi SMTP cục bộ, sử dụng mô-đun 6 được cài đặt sẵn với Python. Thay vì gửi email đến địa chỉ đã chỉ định, nó sẽ loại bỏ chúng và in nội dung của chúng ra bảng điều khiển. Chạy máy chủ gỡ lỗi cục bộ có nghĩa là không cần thiết phải xử lý mã hóa thư hoặc sử dụng thông tin xác thực để đăng nhập vào máy chủ emailBạn có thể khởi động máy chủ gỡ lỗi SMTP cục bộ bằng cách nhập thông tin sau vào Dấu nhắc Lệnh 2Trên Linux, sử dụng lệnh tương tự trước 7Mọi email được gửi qua máy chủ này sẽ bị loại bỏ và hiển thị trong cửa sổ đầu cuối dưới dạng đối tượng 8 cho mỗi dòng
Đối với phần còn lại của hướng dẫn, tôi sẽ cho rằng bạn đang sử dụng tài khoản Gmail, nhưng nếu bạn đang sử dụng máy chủ gỡ lỗi cục bộ, chỉ cần đảm bảo sử dụng 9 làm máy chủ SMTP của bạn và sử dụng cổng 1025 thay vì cổng 465 hoặc 587. Bên cạnh đó, bạn sẽ không cần sử dụng 70 hoặc mã hóa thông tin liên lạc bằng SSL/TLSGửi Email văn bản thuần túyTrước khi chúng tôi đi sâu vào việc gửi email có nội dung HTML và tệp đính kèm, bạn sẽ học cách gửi email văn bản thuần túy bằng Python. Đây là những email mà bạn có thể viết trong một trình soạn thảo văn bản đơn giản. Không có những thứ ưa thích như định dạng văn bản hoặc siêu liên kết. Bạn sẽ học được điều đó một lát sau Bắt đầu kết nối SMTP an toànKhi bạn gửi email qua Python, bạn nên đảm bảo rằng kết nối SMTP của bạn được mã hóa, để người khác không dễ dàng truy cập thông tin và thông tin đăng nhập của bạn. SSL (Lớp cổng bảo mật) và TLS (Bảo mật lớp vận chuyển) là hai giao thức có thể được sử dụng để mã hóa kết nối SMTP. Không cần thiết phải sử dụng một trong hai thứ này khi sử dụng máy chủ gỡ lỗi cục bộ Có hai cách để bắt đầu kết nối an toàn với máy chủ email của bạn
Trong cả hai trường hợp, Gmail sẽ mã hóa email bằng TLS, vì đây là phiên bản kế thừa an toàn hơn của SSL. Theo các cân nhắc về Bảo mật của Python, bạn nên sử dụng 73 từ mô-đun 74. Điều này sẽ tải các chứng chỉ CA đáng tin cậy của hệ thống, cho phép kiểm tra tên máy chủ và xác thực chứng chỉ, đồng thời cố gắng chọn các cài đặt mật mã và giao thức an toàn hợp lýNếu bạn muốn kiểm tra mã hóa cho email trong hộp thư đến Gmail của mình, hãy đi tới Thêm → Hiển thị bản gốc để xem loại mã hóa được liệt kê dưới tiêu đề Đã nhận 7 là mô-đun tích hợp sẵn của Python để gửi email tới bất kỳ máy Internet nào có trình nghe trình nghe SMTP hoặc ESMTPTrước tiên, tôi sẽ chỉ cho bạn cách sử dụng 5, vì nó khởi tạo một kết nối an toàn ngay từ đầu và ngắn gọn hơn một chút so với giải pháp thay thế 6. Hãy nhớ rằng Gmail yêu cầu bạn kết nối với cổng 465 nếu sử dụng 5 và với cổng 587 khi sử dụng 6lựa chọn 1. Sử dụng ---------- MESSAGE FOLLOWS ----------
b'X-Peer: ::1'
b''
b'From: [email protected]'
b'To: [email protected]'
b'Subject: a local test mail'
b''
b'Hello there, here is a test email'
------------ END MESSAGE ------------
|