在数字化时代,电子邮件作为一种高效的沟通方式,已经深入到我们生活和工作的方方面面。Python作为一门功能强大的编程语言,可以帮助我们轻松实现邮件的自动化发送。今天,就让我们一起学习如何使用Python发送文本邮件和带附件的邮件。🚀
获取

引入所需的库
首先,我们需要引入一些Python库来帮助我们完成邮件的发送。这里我们主要使用smtplib
、email.mime.multipart
、email.mime.text
和email.mime.application
这几个库。
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.header import Header
发送文本邮件
让我们先从简单的文本邮件开始。我们定义一个函数send_text_email
,它可以帮助我们发送纯文本的邮件。
def send_text_email(sender, password, receiver, subject, body):
# 设置SMTP服务器地址和端口
smtp_server = "smtp.163.com"
smtp_port = 465
# 创建MIMEMultipart对象,设置邮件内容和编码
message = MIMEText(body, "plain", "utf-8")
message["From"] = Header(sender, "utf-8")
message["To"] = Header(receiver, "utf-8")
message["Subject"] = Header(subject, "utf-8")
try:
# 连接SMTP服务器
server = smtplib.SMTP_SSL(smtp_server, smtp_port)
server.login(sender, password)
server.sendmail(sender, [receiver], message.as_string())
server.quit()
return "邮件发送成功!"
except Exception as e:
return f"邮件发送失败:{e}"
发送带附件的邮件
接下来,我们来学习如何发送带附件的邮件。我们定义一个函数send_email_with_attachment
,它可以帮助我们发送带附件的邮件。
def send_email_with_attachment(sender, password, receiver, subject, body, attachment_path):
# 设置SMTP服务器地址和端口
smtp_server = "smtp.163.com"
smtp_port = 465
# 创建MIMEMultipart对象,设置邮件内容和编码
message = MIMEMultipart()
message["From"] = Header(sender, "utf-8")
message["To"] = Header(receiver, "utf-8")
message["Subject"] = Header(subject, "utf-8")
# 添加邮件正文
message.attach(MIMEText(body, "plain", "utf-8"))
# 读取附件内容
with open(attachment_path, "rb") as f:
attachment = MIMEApplication(f.read())
attachment.add_header("Content-Disposition", "attachment", filename=("gbk", "", attachment_path.split("/")[-1]))
message.attach(attachment)
try:
# 连接SMTP服务器
server = smtplib.SMTP_SSL(smtp_server, smtp_port)
server.login(sender, password)
server.sendmail(sender, [receiver], message.as_string())
server.quit()
return "邮件发送成功!"
except Exception as e:
return f"邮件发送失败:{e}"
示例使用
最后,我们通过一个示例来演示如何使用这两个函数。需要注意的是,由于我不能提供真实的邮箱账号和密码,这里只是展示函数,实际发送需要您自己调用并提供正确的账号信息。
sender = "you-email@163.com" # 发送者邮箱
password = "you-email-password" # 发送者邮箱密码或授权码
receiver = "xxxxxxxxxxx@qq.com" # 接收者邮箱
subject = "测试邮件" # 邮件主题
body = "这是一封来自Python脚本的测试邮件。" # 邮件正文
attachment_path = "../a.txt" # 附件路径
# 调用函数发送文本邮件
print(send_text_email(sender, password, receiver, subject, body))
# 调用函数发送带附件的邮件
print(send_email_with_attachment(sender, password, receiver, subject, body, attachment_path))
通过以上步骤,我们就可以轻松地使用Python实现邮件的自动化发送了。希望这篇文章能帮助到您,如果您有任何问题,欢迎在评论区留言交流!👍📝
原文始发于微信公众号(索隆程序员):Python实现邮件自动化:文本邮件与带附件邮件的发送教程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/223515.html