Python实现邮件自动化:文本邮件与带附件邮件的发送教程

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

获取

Python实现邮件自动化:文本邮件与带附件邮件的发送教程

引入所需的库

首先,我们需要引入一些Python库来帮助我们完成邮件的发送。这里我们主要使用smtplibemail.mime.multipartemail.mime.textemail.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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!