学习如何安装必要的库并设置Python以实现邮件自动化。了解如何使用smtplib向单个收件人发送邮件,包括认证和会话管理。探索使用Python和smtplib向多个收件人发送邮件的方法。探索邮件内容和格式的定制选项,并学习如何处理邮件发送中的异常和错误。
为什么使用Python发送邮件?
Python简单且易于阅读,使其成为包括发送邮件在内的自动化任务的理想选择。当需要发送定期更新、通知或营销邮件时,Python可以使这个过程节省时间。使用Python发送邮件时,将使用SMTP,即简单邮件传输协议。这个协议用于通过互联网发送邮件。这个库“smtplib”创建了一个客户端会话对象,可以用来发送到任何有效的电子邮件ID。SMTP服务器在端口25上运行,但为了安全传输,使用端口587。
发送给单个收件人的邮件
使用Python向单个收件人的账户发送邮件。可以使用Python的smtplib包通过SMTP发送邮件。这种方法非常适合自动化发送警报、通知或定制消息。要向单个收件人发送邮件、进行认证和设置SMTP会话,请参见以下代码片段。
import smtplib
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('sender_email_id', 'sender_email_password')
message = "Message to be sent"
server.sendmail('sender_email_id', 'receiver_email', message)
server.quit()
发送给多个收件人的邮件
import smtplib
list_of_email = ['email1@example.com', 'email2@example.com']
for i in list_of_email:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('sender_email_id', 'sender_email_password')
message = "Message to be sent"
server.sendmail('sender_email_id', i, message)
server.quit()
从Gmail账户发送带附件的邮件
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from_email_add = "Email ID of sender"
to_email_add = "Email ID of receiver"
msg = MIMEMultipart()
msg['from'] = from_email_add
msg['to'] = to_email_add
msg['subject'] = "Subject of the mail"
body = "Body of the mail"
msg.attach(MIMEText(body, 'plain'))
filename = "file_with_the_extension"
attachment = open("Path of the file", "rb")
q = MIMEBase('application', 'octet-stream')
q.set_payload((attachment).read())
encoders.encode_base64(q)
q.add_header('Content-Disposition', 'attachment; filename=%s' % filename)
msg.attach(q)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(from_email_add, "Password of the sender")
text = msg.as_string()
server.sendmail(from_email_add, to_email_add, text)
server.quit()