1. 使用Python3发送带附件的邮件
在Python中,我们可以使用smtplib模块来发送邮件,并使用email模块来构建邮件内容。下面我们将学习如何使用Python3通过QQ邮箱发送带有附件的邮件。
1.1 安装smtplib和email模块
首先,确保你已经安装了Python3的开发环境。然后可以使用以下命令来安装smtplib和email模块:
pip install smtplib
pip install email
1.2 导入模块
在代码中,我们将需要导入smtplib和email两个模块,以便使用它们来发送邮件并构建邮件内容。使用以下代码导入这两个模块:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
1.3 登录QQ邮箱
在使用QQ邮箱发送邮件之前,我们需要先登录到QQ邮箱的SMTP服务器。首先,你需要开启QQ邮箱的SMTP服务,并获得授权码。然后,使用以下代码进行登录:
sender_email = "your_email@qq.com" # 发送方邮箱
sender_password = "your_password" # 发送方邮箱授权码
smtp_server = "smtp.qq.com" # QQ邮箱的SMTP服务器地址
smtp_port = 587 # QQ邮箱的SMTP服务器端口(通常为587)
# 登录QQ邮箱
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # 启用TLS加密
server.login(sender_email, sender_password)
1.4 创建邮件对象
创建一个MIMEMultipart类型的邮件对象,以支持发送HTML格式的邮件和附件。使用以下代码创建邮件对象:
email_subject = "这是一封测试邮件" # 邮件主题
email_content = "这是一封测试邮件,带有附件。" # 邮件正文内容
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = "recipient_email@example.com" # 收件人邮箱
message["Subject"] = email_subject
1.5 添加邮件正文
添加邮件的正文内容,可以使用MIMEText对象来指定邮件的文本内容和内容类型。在正文中,我们可以使用HTML标签来格式化邮件内容。使用以下代码将邮件正文内容添加到邮件对象中:
email_body = "邮件正文标题
这是一封测试邮件的正文内容。这里是第二个段落。"
email_body_part = MIMEText(email_body, "html")
message.attach(email_body_part)
1.6 添加附件
如果需要在邮件中添加附件,我们可以使用MIMEBase对象来表示附件。首先,使用以下代码打开附件文件:
attachment_file = open("path/to/attachment_file.pdf", "rb")
然后,使用MIMEBase对象来表示附件的类型和名称,并将附件内容添加到MIMEBase对象中:
attachment_part = MIMEBase("application", "octet-stream")
attachment_part.set_payload((attachment_file).read())
最后,使用encoders模块来编码附件,并将附件添加到邮件对象中:
encoders.encode_base64(attachment_part)
attachment_part.add_header("Content-Disposition", "attachment;filename=attachment_file.pdf")
message.attach(attachment_part)
1.7 发送邮件
最后,通过SMTP服务器发送邮件:
server.sendmail(sender_email, recipient_email, message.as_string())
server.quit()
至此,我们已经学习了使用Python3通过QQ邮箱发送带有附件的邮件的方法。希望这篇文章对你有所帮助!