用Python脚本自动发邮件,省时又高效

{"title":"用Python脚本自动发邮件,省时又高效","content":"

每天上班第一件事就是给客户群发报价单?月底还得手动发送工资条?这些重复性工作完全可以交给Python脚本搞定。写个简单的程序,点一下就自动发邮件,连咖啡都没冲好,任务已经完成了。

\n\n

准备阶段:开启邮箱的SMTP服务

\n

不是所有邮箱默认都支持程序发信。以QQ邮箱为例,得先登录网页版,进入“设置”->“账户”,往下拉找到“POP3/IMAP/SMTP服务”,把“SMTP服务”打开。会弹出一个授权码,这个码就是你脚本里要用的密码,别用你的登录密码。

\n\n

常见的SMTP服务器地址和端口:

\n
    \n
  • QQ邮箱:smtp.qq.com,端口465(SSL)
  • \n
  • 163邮箱:smtp.163.com,端口465 或 994
  • \n
  • Gmail:smtp.gmail.com,端口587(TLS)
  • \n
\n\n

核心代码:三步实现发邮件

\n

Python自带smtplib和email库,不用额外安装。下面是一个完整例子,发送纯文本邮件:

\n\n
import smtplib\nfrom email.mime.text import MIMEText\nfrom email.header import Header\n\n# 邮箱配置\nsender = 'your_email@163.com'\npassword = 'your_authorization_code'  # 授权码,不是登录密码\nreceiver = 'target@example.com'\n\n# 邮件内容\nmsg = MIMEText('Hi,这是今天的数据报告,请查收。', 'plain', 'utf-8')\nmsg['From'] = sender\nmsg['To'] = receiver\nmsg['Subject'] = Header('每日数据简报', 'utf-8')\n\n# 发送邮件\ntry:\n    server = smtplib.SMTP_SSL('smtp.163.com', 465)\n    server.login(sender, password)\n    server.sendmail(sender, receiver, msg.as_string())\n    server.quit()\n    print('邮件发送成功')\nexcept Exception as e:\n    print('邮件发送失败:', e)
\n\n

发带附件的邮件也很简单

\n

比如你要自动发一份Excel报表,只需要改一下内容构造部分:

\n\n
from email.mime.multipart import MIMEMultipart\nfrom email.mime.base import MIMEBase\nfrom email import encoders\n\n# 创建带附件的邮件对象\nmsg = MIMEMultipart()\nmsg['From'] = sender\nmsg['To'] = receiver\nmsg['Subject'] = Header('月度销售报表', 'utf-8')\n\n# 添加正文\nbody = '各位好,附件是本月销售汇总,请查阅。'\nmsg.attach(MIMEText(body, 'plain', 'utf-8'))\n\n# 添加附件\nfilename = 'sales_report.xlsx'\nwith open(filename, 'rb') as f:\n    part = MIMEBase('application', 'octet-stream')\n    part.set_payload(f.read())\n    encoders.encode_base64(part)\n    part.add_header('Content-Disposition', f'attachment; filename= {filename}')\n    msg.attach(part)\n\n# 后续发送逻辑和之前一样
\n\n

定时运行,彻底解放双手

\n

写完脚本后,配合系统自带的任务计划程序,就能让它每天固定时间自动执行。Windows可以用“任务计划程序”,macOS或Linux可以用cron。比如在crontab里加一行:

\n
0 9 * * 1-5 /usr/bin/python3 /path/to/send_email.py
\n

意思是每周一到周五早上9点自动运行脚本,再也不用手动操作了。

\n\n

这种小工具用一次就得劲,尤其适合行政、财务、运营这类常要批量通知的岗位。花半小时写个脚本,以后每个月都能多出半小时喝咖啡。”,"seo_title":"Python脚本发邮件教程 - 自动化发送邮件实例","seo_description":"手把手教你用Python脚本自动发送邮件,支持文本和附件,结合定时任务实现完全自动化,提升工作效率。","keywords":"python脚本发邮件,python发送邮件,smtp发邮件,python自动化邮件,邮件脚本"}