Gửi nhiều email python

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

Chủ Đề