Truyền bá tình yêu
Đôi khi, chúng tôi muốn gửi email đến nhiều người nhận bằng Python smtplib
Trong bài viết này, chúng ta sẽ xem cách gửi email đến nhiều người nhận bằng Python smtplib
Làm cách nào để gửi email đến nhiều người nhận bằng Python smtplib?
Để gửi email cho nhiều người nhận bằng Python smtplib, chúng ta có thể sử dụng phương thức sendmail
Ví dụ, chúng tôi viết
import smtplib
from email.mime.text import MIMEText
s = smtplib.SMTP['smtp.live.com']
s.set_debuglevel[1]
msg = MIMEText["""body"""]
sender = 'me@example.com'
recipients = ['john.doe@example.com', 'john.smith@example.co.uk']
msg['Subject'] = "subject line"
msg['From'] = sender
msg['To'] = ", ".join[recipients]
s.sendmail[sender, recipients, msg.as_string[]]
Chúng tôi tạo phiên bản SMTP
bằng cách sử dụng địa chỉ máy chủ SMTP làm đối số
Sau đó, chúng tôi tạo tin nhắn với lớp MIMEText
Tiếp theo, chúng tôi đặt chủ đề của tin nhắn với
msg['Subject'] = "subject line"
Chúng tôi đặt địa chỉ email người gửi với
msg['From'] = sender
Và chúng tôi đặt email của người nhận với
msg['To'] = ", ".join[recipients]
Chúng tôi kết hợp recipients
thành một chuỗi với join
Cuối cùng, chúng tôi gửi email với
s.sendmail[sender, recipients, msg.as_string[]]
Sự kết luận
Để gửi email cho nhiều người nhận bằng Python smtplib, chúng ta có thể sử dụng phương thức sendmail
bài viết liên quan
Làm cách nào để kiểm tra địa chỉ email hợp lệ bằng Python?
Đôi khi, chúng tôi muốn kiểm tra địa chỉ email hợp lệ bằng Python. Trong bài viết này, chúng ta sẽ…
Làm cách nào để hợp nhất nhiều khung dữ liệu với Python Pandas?
Đôi khi, chúng tôi muốn hợp nhất nhiều khung dữ liệu với Python Pandas. Trong bài viết này, chúng ta sẽ…
Làm cách nào để so sánh một chuỗi với nhiều mục trong Python?
Đôi khi, chúng tôi muốn so sánh một chuỗi với nhiều mục trong Python. Trong bài viết này,…
Để kiểm tra và trả lời email là một công việc tốn nhiều thời gian. Rõ ràng là bạn không thể viết một chương trình để xử lý tất cả các email của mình vì mỗi email yêu cầu phản hồi riêng. Nhưng nếu bạn biết cách viết các chương trình có thể gửi và nhận email, bạn cũng có thể tự động hóa vô số hoạt động liên quan đến email
Ví dụ: bạn có thể có một bảng tính chứa thông tin chi tiết về hồ sơ khách hàng và bạn muốn gửi cho từng khách hàng một tin nhắn được cá nhân hóa. Phần mềm thương mại có thể làm điều này cho bạn nhưng nó sẽ tính phí bạn nhiều hơn. Trong những trường hợp như vậy, bạn có thể viết chương trình của riêng mình để gửi những email được cá nhân hóa này, giúp bạn tiết kiệm rất nhiều thời gian sao chép và dán biểu mẫu email
Một số chương trình máy tính thậm chí có thể thông báo cho bạn về mọi thứ khi bạn rời khỏi máy tính của mình. Bạn không muốn quay lại máy của mình cứ sau vài phút để kiểm tra trạng thái của chương trình trong khi bạn đang tự động hóa một quy trình mất vài giờ để hoàn thành. Thay vào đó, khi hoàn thành, phần mềm sẽ chỉ nhắn tin cho số của bạn, cho phép bạn làm việc trên các mục có ý nghĩa hơn khi bạn không sử dụng thiết bị của mình. Đó không phải là một thỏa thuận tốt sao?
SMTP trong Email Python
SMTP xác định cách định dạng, mã hóa và gửi email giữa các máy chủ thư và tất cả các thông tin khác mà hệ thống của bạn quản lý sau khi bạn đã nhấn Gửi. Tuy nhiên, bạn không cần biết thông tin kỹ thuật này, vì mô-đun smtplib từ Python đơn giản hóa chúng thành một vài hàm.
SMTP chỉ hoạt động với việc gửi email cho mọi người. Một giao thức riêng biệt, được gọi là IMAP, xử lý việc truy xuất email được gửi cho bạn và được định nghĩa trong IMAP
tổng quan về smtplib
Mô-đun smtplib xác định một đối tượng phiên máy khách SMTP có thể được sử dụng để gửi thư đến bất kỳ máy Internet nào có trình nền trình nghe SMTP hoặc ESMTP. SMTP là viết tắt của Giao thức chuyển thư đơn giản. 0020. Mô-đun smtplib rất hữu ích để giao tiếp với các máy chủ thư để gửi thư. Gửi thư được thực hiện với smtplib của Python bằng máy chủ SMTP. Mức sử dụng thực tế khác nhau tùy thuộc vào độ phức tạp của email và cài đặt của máy chủ email, hướng dẫn ở đây dựa trên việc gửi email qua Gmail
Kết nối với máy chủ SMTP
You may be familiar with configuring the SMTP server and connection if you've ever set up Thunderbird, Outlook, or another program to link to your email address. For each email service, these configurations may be different, but a site search for < your service > smtp configurations can bring up the server and port to be used.
Tên miền tài khoản SMTP thường sẽ là tên miền của nhà cung cấp dịch vụ email của bạn, với smtp. Ví dụ: máy chủ SMTP của Gmail ở smtp. gmail. com. Một số nhà cung cấp email phổ biến và máy chủ SMTP của họ được liệt kê bên dưới. [Cổng là một giá trị số nguyên và hầu như sẽ luôn là 587, được sử dụng theo tiêu chuẩn TLS để mã hóa đơn đặt hàng. ]
Các nhà cung cấp
Tên miền máy chủ SMTP
Gmail
smtp. gmail. com
Quan điểm. com/Hotmail. com
smtp-mail. quan điểm. com
Yahoo Mail
smtp. thư. Yahoo. com
AT&T
smpt. thư. att. mạng [cổng 465]
Comcast
smtp. comcast. mạng lưới
Verizon
smtp. verizon. mạng [cổng 465]
Tạo một đối tượng SMTP bằng cách gọi smptlib. SMTP[], chuyển tên miền dưới dạng đối số chuỗi và chuyển cổng dưới dạng đối số số nguyên cho đến khi bạn có tên miền và thông tin cổng cho nhà cung cấp dịch vụ email của mình. Đối tượng SMTP đại diện cho một liên kết máy chủ thư SMTP và có các phương thức gửi email
Kết nối với máy chủ IMAP
Ngay khi bạn cần một đối tượng SMTP để liên kết và gửi email đến máy chủ SMTP, bạn cần một đối tượng IMAPClient để liên kết và nhận email từ máy chủ IMAP. Tiếp theo, bạn sẽ cần tên miền máy chủ IMAP cho nhà cung cấp dịch vụ email của mình. Nó sẽ khác với tên miền của máy chủ SMTP. Đối với nhiều nhà cung cấp dịch vụ email phổ biến, bảng bên dưới liệt kê các máy chủ IMAP
Các nhà cung cấp
Tên miền máy chủ IMAP
Gmail
hình ảnh. gmail. com
Quan điểm. com/Hotmail. com
imap-mail. quan điểm. com
Yahoo Mail
hình ảnh. thư. Yahoo. com
AT&T
hình ảnh. thư. att. mạng lưới
Comcast
hình ảnh. comcast. mạng lưới
Verizon
mới đến. verizon. mạng lưới
Sau khi bạn có tên miền của máy chủ IMAP, hãy gọi máy khách IMAP. Hàm IMAPClient[] để tạo đối tượng IMAPClient. Hầu hết các nhà cung cấp dịch vụ email đều yêu cầu mã hóa SSL, vì vậy hãy chuyển đối số từ khóa ssl=True
cách sử dụng smtplib
Đầu tiên, tạo một đối tượng SMTP và mỗi đối tượng được sử dụng để kết nối với một máy chủ
nhập smtplib
máy chủ = smtplib. SMTP['smtp. gmail. com', 587]
#Tiếp theo, đăng nhập vào máy chủ
người phục vụ. đăng nhập ["tên người dùng email của bạn", "mật khẩu"]
#gửi thư
tin nhắn = "
Xin chào. " # Dấu /n tách thư khỏi tiêu đề
người phục vụ. sendmail["bạn@gmail. com", "mục tiêu@ví dụ. com", tin nhắn]
Nếu bạn muốn bao gồm các tiêu đề Từ, Đến và Chủ đề, hãy sử dụng gói email vì smtplib hoàn toàn không sửa đổi nội dung hoặc tiêu đề
Tổng quan về gói email
Gói email của Python chứa nhiều lớp và chức năng để soạn và phân tích cú pháp email
Cách sử dụng gói email
Chúng tôi sẽ bắt đầu bằng cách chỉ nhập các lớp chúng tôi cần;
từ email. MIMEMultipart nhập MIMEMultipart
từ email. MIMEText nhập MIMEText
Sau đó soạn một số tiêu đề thư cơ bản
fromaddr = "bạn @ gmail. com"
toaddr = "mục tiêu @ ví dụ. com"
msg = MIMEMultipart[]
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "Email Python"
Tiếp theo, đính kèm nội dung email vào thông báo MIME
body = "Thư kiểm tra Python"
tin nhắn. đính kèm[MIMEText[body, 'plain']]
Để gửi thư, chúng ta phải chuyển đổi đối tượng thành một chuỗi, sau đó sử dụng quy trình tương tự như trên để gửi bằng máy chủ SMTP
nhập smtplib
máy chủ = smtplib. SMTP['smtp. gmail. com', 587]
người phục vụ. ồ[]
người phục vụ. giật mình[]
người phục vụ. ồ[]
người phục vụ. đăng nhập ["tên người dùng email của bạn", "mật khẩu"]
văn bản = tin nhắn. với kiểu là chuỗi[]
người phục vụ. sendmail[từaddr, toaddr, văn bản]
Xác minh địa chỉ email
Giao thức SMTP bao gồm một lệnh để hỏi máy chủ xem địa chỉ có hợp lệ không. Thông thường, VRFY bị tắt để ngăn những kẻ gửi thư rác tìm địa chỉ email hợp pháp, nhưng nếu được bật, bạn có thể hỏi máy chủ về địa chỉ và nhận mã trạng thái cho biết tính hợp lệ cùng với tên đầy đủ của người dùng
nhập smtplib
máy chủ = smtplib. SMTP['thư']
người phục vụ. set_debuglevel[True] # hiển thị giao tiếp với máy chủ
thử
dhellmann_result = máy chủ. xác minh ['dhellmann']
notthere_result = máy chủ. xác minh ['không có']
cuối cùng
người phục vụ. từ bỏ[]
in 'dhellmann. ', dhellmann_result
in 'không có. ', notthere_result
gửi email bằng python
nhập smtplib
def sendemail[from_addr, to_addr_list, cc_addr_list,
chủ đề tin nhắn,
mật khẩu đăng nhập,
smtpserver='smtp. gmail. com. 587']
tiêu đề = 'Từ. %S
' % from_addr
tiêu đề += 'Tới. %S
' % ','. tham gia [to_addr_list]
tiêu đề += 'Cc. %S
' % ','. tham gia [cc_addr_list]
tiêu đề += 'Chủ đề. %S
' % môn học
tin nhắn = tiêu đề + tin nhắn
máy chủ = smtplib. SMTP[smtpserver]
người phục vụ. giật mình[]
người phục vụ. đăng nhập [đăng nhập, mật khẩu]
vấn đề = máy chủ. sendmail[from_addr, to_addr_list, tin nhắn]
người phục vụ. từ bỏ[]
Ví dụ Sử dụng tập lệnh trên
sendemail[from_addr = contact@codegnan. com',
to_addr_list = ['codegnan@gmail. com'],
cc_addr_list = ['codegnan@xx. đồng. Trong'],
chủ đề = 'Xin chào',
thông báo = 'Xin chào từ hàm python',
đăng nhập = 'người dùng trăn',
mật khẩu = 'XXXXX']
Email mẫu đã nhận
sendemail[from_addr = 'python@RC. mạng lưới',
to_addr_list = ['RC@gmail. com'],
cc_addr_list = ['RC@xx. đồng. anh'],
chủ đề = 'Xin chào',
message = 'Xin chào chức năng python',
đăng nhập = 'người dùng trăn',
mật khẩu = 'XXXXX']
Gửi nhiều email [gửi email hàng loạt]
Ví dụ về mã bên dưới cho bạn biết cách mở tệp CSV và lặp lại [bỏ qua hàng tiêu đề] qua các dòng nội dung của nó. Chúng tôi đã in Gửi Email tới. để đảm bảo mã hóa hoạt động bình thường trước khi bạn gửi email đến tất cả các địa chỉ liên hệ của mình. Đối với mỗi lần chạm, sau này chúng tôi có thể thay thế bằng các tính năng gửi email
nhập csv
với open["contacts_file. csv"] dưới dạng tệp
người đọc = csv. người đọc [tập tin]
tiếp theo[người đọc] # Bỏ qua hàng tiêu đề
cho tên, email, điểm trong người đọc
print[f"Đang gửi email tới {name}"]
# Gửi email tại đây
Theo ví dụ trên, sử dụng open[filename] làm tệp. đảm bảo rằng tệp đóng ở cuối khối mã. CSV. reader[] giúp đọc từng dòng tệp CSV và trích xuất các giá trị của nó một cách nhanh chóng. Dòng tiếp theo [người đọc] bỏ qua hàng tiêu đề, để dòng tiếp theo cho tên, email, lớp của người đọc. ngắt các hàng tiếp theo ở mỗi dấu phẩy và giữ nguyên các giá trị kết quả cho chuỗi tên, email và cấp của liên hệ hiện tại. Nếu các giá trị trong tệp CSV của bạn chứa khoảng trắng ở một hoặc cả hai bên, bạn có thể sử dụng. phương thức strip[] để xóa chúng
Liên kết hữu ích
Gửi email hàng loạt qua Django
Cách gửi email tự động bằng Python
Từ cuối cùng
Với blog này, giờ đây bạn đã biết cách bắt đầu kết nối SMTP an toàn và gửi email hàng loạt được cá nhân hóa cho những người trong danh sách email của bạn. Nếu bạn gặp khó khăn trong bất kỳ vấn đề nào trong khi viết mã, bạn có thể liên hệ với chúng tôi. Các chuyên gia Python của chúng tôi sẽ giúp bạn thoát khỏi mọi vấn đề. Thích gửi email với Python
Nếu bạn đang có kế hoạch học Python hoặc đang tìm kiếm một nghề nghiệp béo bở trong Python hoặc khoa học dữ liệu, thì hãy liên hệ lại với chúng tôi để được đào tạo từ đầu đến chân về Python. Chúng tôi, tại Codegnan, có mô-đun đào tạo chứng chỉ Python MTA chính thức dành cho những người theo học Python sắp tới, nơi họ sẽ hiểu về Python và bạn sẽ có thể giải quyết các vấn đề logic một cách nhanh chóng. Bạn sẽ hiểu hoạt động của các thư viện Python khác nhau như SciPy, NumPy, Matplotlib, hàm Lambda, v.v. và tận dụng chúng để đảm bảo cho sự nghiệp của bạn trong tương lai trong các lĩnh vực khác nhau của Python như Khoa học dữ liệu, Học máy và Trí tuệ nhân tạo
Bạn có biết một nhà phát triển Python kiếm được bao nhiêu ở Ấn Độ không?
Bạn còn chờ gì nữa? . Hãy liên hệ lại với chúng tôi, chúng tôi sẽ giúp bạn hợp nhất với các chuyên gia Pythonist khác