Đôi khi chúng ta cần gửi email thường xuyên như hàng tuần, hàng tháng, hàng quý, v.v. Nếu chúng ta có thể thiết lập một tác vụ tự động gửi email mà không cần dùng tay, điều đó sẽ giúp công việc của chúng ta hiệu quả và dễ dàng hơn
smtplib0 [e. g. , smtplib
1 với thông báo email, smtplib
2 với tệp đính kèm] vào đó
Hãy khám phá một số ví dụ dưới đây
Gửi nội dung HTML bằng mô-đun smtplib
2
HTML là ngôn ngữ đánh dấu tiêu chuẩn cho các trang web. Vì vậy, có rất nhiều nội dung và định dạng chúng ta có thể thực hiện với HTML. Ví dụ: chúng ta có thể tạo văn bản dưới dạng tiêu đề, đoạn văn, in đậm hoặc in nghiêng; . Với HTML là nội dung email, chúng tôi có thể hiển thị nội dung giàu thông tin và có cấu trúc tốt
Dưới đây là một ví dụ về một email nội dung HTML cơ bản
- Nhập mô-đun
Bên cạnhsmtplib
vàssl
, chúng ta cũng cần một số chức năng để tạo các lớp con MIME từsmtplib
2. Bạn có thể nghiên cứu các lớp MIME khác nhau tại đây
Chúng tôi cũng nhập thư việnsmtplib
7 vì chúng tôi muốn đưa ngày hiện tại vào Chủ đề, đây là tùy chọn để gửi email - Xác định tài liệu HTML
Chúng tôi chỉ bao gồm một tài liệu đơn giản với phần tửsmtplib
8 và phần tửsmtplib
9. Nhưng bạn có thể bao gồm các yếu tố khác nhưsmtplib
0
Nếu bạn đến từ hướng dẫn Cách tạo Báo cáo bằng Python, bạn có thể thử hiển thị báo cáosmtplib
1 mà chúng tôi đã tạo, ngoại trừ phần tửsmtplib
2. Phần tửsmtplib
2 cần thêm một số công việc để kết xuất, phần tử này sẽ sớm được hiển thị - Thiết lập địa chỉ email và mật khẩu
Xin lưu ý rằng bạn cũng có thể bao gồm nhiều người nhận dưới dạng - Tạo một lớp
email
9 và thiết lập các trường Từ, Đến, Chủ đề
Lưu ý rằng mô-đunsmtplib
2 giúp thiết lập các trường Từ, Đến, Chủ đề dễ dàng hơn. Chúng tôi không phải đặt từng trường trên một dòng riêng trong chuỗi thông báo. Thay vào đó, chúng tôi xác định chúng một cách riêng biệt theo cách rõ ràng hơn - Đính kèm tài liệu
smtplib
1 được xác định trước đó, dưới dạng loại nội dung htmlsmtplib
1 vào thông báo MIME
Lưu ý rằng loại nội dung mặc định là 'đơn giản', sẽ không hiển thị đúng tài liệu HTML - Chuyển đổi
smtplib
8 thành chuỗi - Kết nối với máy chủ Gmail SMTP và gửi Email, giống như trước đây
Cuối cùng, bạn sẽ nhận được một email như dưới đây. Như bạn có thể thấy, văn bản được định dạng tốt hơn
smtplib2 để giữ các tệp đính kèmsmtplib
2 vào emailVì việc thêm tệp đính kèm rất phức tạp nên tốt hơn hết bạn nên viết nó dưới dạng một hàm để sử dụng lại
Vui lòng xem chi tiết ở phần bình luận
Chúng tôi đính kèm ba tài liệu. 1 PNG, 1 Excel, 1 PDF
Bạn có thể thử đính kèm tệp của mình. Vui lòng đảm bảo rằng chúng được lưu trong thư mục làm việc hiện tại, nếu bạn không muốn chỉ định đường dẫn
Nếu bạn đến từ hướng dẫn Cách tạo báo cáo bằng Python, giờ đây bạn có thể đính kèm biểu đồ, báo cáo Excel và PDF mà chúng tôi đã tạo
Nếu bạn chạy mã, bạn sẽ có thể nhận được email như bên dưới, với các tệp đính kèm do bạn chọn
ssl4 là cid [ID nội dung] là myimageidBạn có thể đặt cid thành các giá trị khác nếu muốn
ssl
5Đầu vào này có giá trị mặc định là Không có
– Nếu không thì chức năng đính kèm file như ví dụ trước
– Nếu đầu vào này không phải là Không, tôi. e. , khi chúng ta đặt nó thành một giá trị cụ thể, nó sẽ thêm giá trị của
ssl
6 này làm tiêu đề cho đối tượng, giá trị này có thể được sử dụng để đặt cid cho smtplib
2ssl
6 trên ssl
9Content-ID của myimageid khớp với phần tử
smtplib
2 trong smtplib
1. Điều này hiển thị ssl
9 trên nội dung HTMLNếu bạn chạy mã ngay bây giờ, bạn sẽ nhận được một email như bên dưới. ssl
9 hoặc biểu đồ bạn chọn được hiển thị trong nội dung HTML, thay vì được hiển thị dưới dạng tệp đính kèm
Điều đó thật tuyệt
Trong hướng dẫn này, bạn đã học cách gửi email bằng Python, từ các email văn bản thuần túy cơ bản nhất đến các email HTML lạ mắt hơn có tệp đính kèm
Hy vọng bây giờ bạn có thể tự động hóa quá trình gửi email qua Python
Bên cạnh các mô-đun Python nền tảng này, còn có các thư viện hoặc sản phẩm khác hỗ trợ gửi email bằng Python. Ví dụ, bạn có thể kiểm tra
- yagmail. mô-đun này đặc biệt dành cho Gmail, giúp đơn giản hóa quy trình rất nhiều. Nhưng bạn phải đảm bảo rằng gói được cập nhật dựa trên các mô-đun nền tảng và Gmail
- GửiGrid. dịch vụ này có một bậc miễn phí. Nhưng vì nó là một dịch vụ được quản lý, bạn phải tin tưởng nó
- súng thư. dịch vụ này cung cấp 3 tháng dùng thử miễn phí. Nhưng vì nó là một dịch vụ được quản lý, bạn phải tin tưởng nó
học thêm. để tìm hiểu về cách tạo báo cáo bằng Python, hãy xem Cách tạo báo cáo bằng Python [3 Định dạng/4 Công cụ]. Vì vậy, bạn có thể tạo báo cáo, gửi email để chia sẻ báo cáo, cả hai đều tự động bằng Python
Chúng tôi muốn nghe từ bạn. Để lại một bình luận cho bất kỳ câu hỏi mà bạn có thể có hoặc bất cứ điều gì khác
- Tự động hóa, email, Python, Báo cáo Python, báo cáo Python, Gửi email, smtplib
Lianne và Justin
Trước đóCách tạo Báo cáo bằng Python [3 Định dạng/4 Công cụ]
6 thư viện trực quan hóa dữ liệu Python hàng đầu. Cách chọnTiếp theo
15 thoughts on “How to Send Emails using Python: Tutorial with examples
Plain text, HTML with attachments”
nhanh chóng
Xin chào, từ 30. 05. 2022 gmail không cho phép “truy cập bằng ứng dụng kém an toàn” nên không hoạt động nữa
Có nhà cung cấp nào khác vẫn hoạt động với phương pháp được mô tả của bạn không?
Trân trọngLianne và Justin
Xin chào, cảm ơn vì đã cho chúng tôi biết. Nếu muốn gắn bó với Gmail, bạn có thể thiết lập mật khẩu ứng dụng như chúng tôi đã cập nhật trong bài viết. Còn các nhà cung cấp khác thì mình chưa test nhưng có thể vẫn có triển vọng
Malcolm
Ồ
Kể từ khi Google thay đổi các điều khoản dành cho Gmail đối với các ứng dụng không an toàn, tôi đã dành nhiều giờ để xem và tạo các ứng dụng sử dụng OAuth 2. 0 và dịch vụ Không gian làm việc. Nhưng không có [vì nhiều lý do] thay thế hoàn toàn cho những gì tồn tại trước khi thay đổiBài đăng của bạn dễ hiểu và dễ thực hiện đồng thời cung cấp lại chức năng đã tồn tại trước đây. Điều thực sự làm tôi ngạc nhiên là tôi chưa bao giờ thấy bất kỳ đề cập nào về “Để khắc phục sự cố với hướng dẫn của chúng tôi về Gmail, vui lòng thiết lập Mật khẩu ứng dụng. ”
Vì vậy, cảm ơn vì điều đó
Lianne và Justin
Rất vui vì nó có ích, Malcolm. ]
Eric
bạn sử dụng con trăn nào để chạy các tập lệnh đó?
Lianne và Justin
Xin chào Eric, có lẽ chúng tôi đã sử dụng 3. 8
Kamal
làm cách nào để tạo chức năng Nhiều người gửi trong smtp
Lianne và Justin
Xin chào Kamal, tôi không chắc mình có hiểu câu hỏi của bạn không. Tôi nghĩ rằng một email chỉ nên có một người gửi
sok
Tôi nghĩ ý anh ấy là gửi đến nhiều địa chỉ người nhận, điều mà tôi cũng muốn tìm hiểu
Lianne và Justin
Xin chào Sok, có một phần về nhiều người nhận trong bài đăng
M
Này, làm cách nào tôi có thể thêm nhiều hình ảnh vào nội dung email bằng mã này?
Lianne và Justin
Xin chào M, bạn có thể lặp lại quy trình tương tự như thêm một hình ảnh được đề cập trong bài đăng
හිෂාන්
Cảm ơn bạn. Bạn đã cứu ngày của tôi…
venakt
Xin chào
khi tôi đang cố chạy mã trên máy chủ thì nó báo lỗi
f”đính kèm;
]
^
Lỗi cú pháp. cú pháp không hợp lệThanks
venkatđây là đầu ra mà tôi đang nhận được
Lianne và Justin
Xin chào Venkat, thật khó để nói dựa trên điều này. Nhưng vì đó là lỗi Cú pháp nên có thể là do thụt đầu dòng sai
Để lại bình luận
Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *
Nhập ở đây
Tên*
E-mail*
Trang mạng
Lưu tên, email và trang web của tôi trong trình duyệt này cho lần bình luận tiếp theo
Bài viết gần đây hơn
Cách xây dựng các mô hình XGBoost trong Python
Với một ví dụ từng bước
Lianne & Justin Ngày 16 tháng 1 năm 2023
Đây là hướng dẫn thực tế về XGBoost trong Python
Tìm hiểu cách xây dựng mô hình XGBoost đầu tiên của bạn với hướng dẫn từng bước này
Tăng cường độ dốc trong học máy là gì. nguyên tắc cơ bản giải thích
Phải đọc trước khi thực hiện
Lianne & Justin Ngày 22 tháng 11 năm 2022
Đây là hướng dẫn dành cho người mới bắt đầu về tăng cường độ dốc trong học máy
Tìm hiểu nó là gì và làm thế nào để cải thiện hiệu suất của nó với chính quy hóa
Lỗi Python là gì và cách khắc phục chúng
Lianne & Justin Ngày 4 tháng 10 năm 2022
Đây là hướng dẫn về lỗi Python cho người mới bắt đầu. Tìm hiểu các loại của chúng và cách khắc phục chúng bằng các bước chung