您现在的位置是:首页 >其他 >python办公自动化之发邮件①网站首页其他
python办公自动化之发邮件①
一:smtplib库
安装smtplib库
在使用smtplib之前,需要确保Python中已经安装了这个库。通常情况下,smtplib是Python标准库的一部分,所以无需额外安装。如果需要检查smtplib是否已安装,可以打开Python解释器并尝试导入它。
import smtplib
如果没有出现错误,说明smtplib库已成功导入,可以继续使用。
连接SMTP服务器
要发送电子邮件,首先需要连接到SMTP服务器。SMTP(Simple Mail Transfer Protocol)是用于发送电子邮件的标准协议。通常,需要提供SMTP服务器的主机名和端口。
-
587端口: 适合需要兼容性的场景,支持STARTTLS加密。
-
465端口: 适合高安全性要求的场景,全程使用SSL/TLS加密。
SMTP服务器的主机名:
各邮箱的主机名可以直接在网上查询;QQ邮箱:smtp.qq.com Gmail:smtp.gmail.com。
import smtplib
# 设置SMTP服务器的主机名和端口
smtp_server = 'smtp.example.com'
smtp_port = 587
# 连接到SMTP服务器
server = smtplib.SMTP(smtp_server, smtp_port)
登录到邮箱账户
要使用SMTP服务器发送电子邮件,通常需要提供发件人的邮箱地址和密码进行身份验证。
# 发件人邮箱地址和密码
email = 'your_email@example.com'# 替换为你的邮箱
password = 'your_password'# 替换为你的授权码
# 登录到邮箱账户
server.login(email, password)
注:邮箱需要开启POP3/IMAP/SMTP服务(QQ邮箱的密码是授权码)。
QQ邮箱在设置中开启POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
编辑邮件内容
需要编辑电子邮件的内容,包括收件人、主题、正文、附件等
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
# 创建一个MIMEMultipart对象,用于表示邮件
message = MIMEMultipart()
# 添加发件人和收件人
message['From'] = 'your_email@example.com'
message['To'] = 'recipient@example.com'
# 添加主题
message['Subject'] = 'Python Email'
# 添加邮件正文
body = MIMEText('This is the body of the email.')
message.attach(body)
# 添加附件
attachment = MIMEApplication(open('document.pdf', 'rb').read())
attachment.add_header('Content-Disposition', 'attachment', filename='document.pdf')
message.attach(attachment)
以上代码创建了一个MIMEMultipart
对象,用于表示整个邮件。然后,设置发件人、收件人和主题。邮件正文和附件是MIMEText
和MIMEApplication
对象,分别表示文本正文和二进制文件附件。最后,使用message.attach()
方法将正文和附件添加到邮件中。
MIMEText:
用于构建电子邮件正文。
参数说明:
第一个参数:邮件内容。
第二个参数:内容类型(plain 表示纯文本,html 表示 HTML 格式)。
第三个参数:编码格式(通常为 utf-8)。
# 发送純文字的邮件内容
message.set content("新年快乐")
#寄送比较多样式的内容(html)
# message.add alternative("<h3>新年好</h3>新的一年愿您顺丰顺水”,subtype="html")
发送电子邮件
编辑好邮件内容,可以使用server.sendmail()方法发送电子邮件:
# 发送邮件
server.sendmail(email, ['recipient@example.com'], message.as_string())
使用server.sendmail()方法发送邮件。该方法需要发件人的邮箱地址、收件人的邮箱地址和邮件内容。邮件内容使用message.as_string()方法转换为字符串格式。
关闭连接
最后,不要忘记关闭与SMTP服务器的连接:
# 关闭连接
server.quit()
使用server.quit()方法可以正常关闭连接,确保不会留下未处理的连接。
二:
总结:
Python中的smtplib库用于发送电子邮件。使用MIMEMultipart、MIMEText和MIMEApplication对象来设置发件人、收件人、主题、正文和附件等元素,使用server.sendmail()方法将邮件内容发送给收件人,并使用server.quit()方法正常关闭与SMTP服务器的连接。