Python利用脚本实现自动发送电子邮件
作者:Ma_si
这篇文章主要为大家详细介绍了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 encoders def 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_email msg['To'] = receiver_email msg['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)
3.运行脚本
将上述脚本保存为一个Python文件(例如send_email.py),然后在命令行中运行:
python send_email.py
4.注意事项
SMTP服务器:你需要替换smtp_server和smtp_port为你的电子邮件服务提供商的SMTP服务器地址和端口。例如,Gmail的SMTP服务器是smtp.gmail.com,端口是587。
发件人邮箱和密码:你需要替换sender_email和sender_password为你的发件人邮箱地址和密码。对于Gmail,你可能需要生成一个应用专用密码。
收件人邮箱:替换receiver_email为收件人的邮箱地址。
附件:如果你不需要发送附件,可以将attachment_path设置为None。
5.安全性
密码安全:不要在脚本中硬编码密码,尤其是当你将代码分享或上传到公共仓库时。可以考虑使用环境变量或配置文件来管理敏感信息。
TLS加密:确保使用starttls()来启用TLS加密,以保护邮件内容在传输过程中的安全。
到此这篇关于Python利用脚本实现自动发送电子邮件的文章就介绍到这了,更多相关Python自动发送电子邮件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!