欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > Python脚本自动发送电子邮件

Python脚本自动发送电子邮件

2025/1/15 22:12:59 来源:https://blog.csdn.net/weixin_42490599/article/details/145124284  浏览:    关键词:Python脚本自动发送电子邮件

要编写一个Python脚本来自动发送电子邮件,你可以使用smtplib库来处理SMTP协议,以及email库来构建邮件内容。

  1. 安装必要的库
    通常情况下,smtplib和email库是Python标准库的一部分,因此不需要额外安装。如果你使用的是较旧的Python版本,可能需要确保这些库已安装。

  2. 编写脚本
    以下是一个完整的Python脚本示例,用于发送带有附件的电子邮件

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encodersdef send_email(sender_email, sender_password, receiver_email, subject, body, attachment_path):# 设置SMTP服务器smtp_server = 'smtp.example.com'  # 替换为你的SMTP服务器地址smtp_port = 587  # 替换为你的SMTP服务器端口# 创建邮件对象msg = MIMEMultipart()msg['From'] = sender_emailmsg['To'] = receiver_emailmsg['Subject'] = subject# 添加邮件正文msg.attach(MIMEText(body, 'plain'))# 添加附件if attachment_path:attachment = open(attachment_path, 'rb')part = MIMEBase('application', 'octet-stream')part.set_payload(attachment.read())encoders.encode_base64(part)part.add_header('Content-Disposition', f'attachment; filename={attachment_path}')msg.attach(part)attachment.close()# 连接SMTP服务器并发送邮件try:server = smtplib.SMTP(smtp_server, smtp_port)server.starttls()  # 启用TLS加密server.login(sender_email, sender_password)text = msg.as_string()server.sendmail(sender_email, receiver_email, text)server.quit()print("邮件发送成功")except Exception as e:print(f"邮件发送失败: {e}")if __name__ == "__main__":# 替换为你的发件人邮箱和密码sender_email = 'your_email@example.com'sender_password = 'your_password'# 替换为收件人邮箱receiver_email = 'receiver_email@example.com'# 邮件主题和正文subject = '测试邮件'body = '这是一封测试邮件,包含附件。'# 附件路径(可选)attachment_path = 'example.txt'  # 替换为你的附件文件路径# 发送邮件send_email(sender_email, sender_password, receiver_email, subject, body, attachment_path)
  1. 运行脚本
    将上述脚本保存为一个Python文件(例如send_email.py),然后在命令行中运行:

python send_email.py

  1. 注意事项
    SMTP服务器:你需要替换smtp_server和smtp_port为你的电子邮件服务提供商的SMTP服务器地址和端口。例如,Gmail的SMTP服务器是smtp.gmail.com,端口是587。

发件人邮箱和密码:你需要替换sender_email和sender_password为你的发件人邮箱地址和密码。对于Gmail,你可能需要生成一个应用专用密码。

收件人邮箱:替换receiver_email为收件人的邮箱地址。

附件:如果你不需要发送附件,可以将attachment_path设置为None。

  1. 安全性
    密码安全:不要在脚本中硬编码密码,尤其是当你将代码分享或上传到公共仓库时。可以考虑使用环境变量或配置文件来管理敏感信息。

TLS加密:确保使用starttls()来启用TLS加密,以保护邮件内容在传输过程中的安全。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com