您现在的位置是:首页 >其他 >python办公自动化之发邮件①网站首页其他

python办公自动化之发邮件①

日有进益168 2025-03-23 12:01:02
简介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对象,用于表示整个邮件。然后,设置发件人、收件人和主题。邮件正文和附件是MIMETextMIMEApplication对象,分别表示文本正文和二进制文件附件。最后,使用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服务器的连接。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。