发邮件的python脚本
1. 编写一个最简单的发邮件的python脚本
#coding: utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = '929135087@qq.com' #发件人账号
receiver = '929135087@qq.com' #收件人,以列表的形式支持多个收件人,例:['收件人1','收件人2']
subject = 'python email test' #标题
smtpserver = 'smtp.qq.com' #设置邮件服务器
username = '929135087@qq.com' #用户名
password = '*********' #授权口令
msg = MIMEText( 'Hello Python', 'plain', 'utf-8' ) #'内容','格式','编码'
msg['Subject'] = Header( subject, 'utf-8' )
- msg['From'] = Header( '小鱼', 'utf-8' ) #发件人
- try:
#smtp = smtplib.SMTP()
- smtp = smtplib.SMTP_SSL('smtp.qq.com:465') #使用465端口,默认25端口
smtp.connect( smtpserver )
smtp.login( username, password )
smtp.sendmail( sender, receiver, msg.as_string() ) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
- print("邮件发送成功")
smtp.quit()
- except smtplib.SMTPException:
- print("Error: 无法发送邮件")
2. 运行结果
如果在上述代码username
和password
,变量中填写邮箱的帐号密码那么会看到以下报错:
Traceback (most recent call last):
File "mail.py", line 18, in <module>
smtp.login( username, password )
File "/usr/lib64/python2.6/smtplib.py", line 589, in login
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, 'Error: authentication failed')
3. 解决方法
调用163邮箱或qq邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件或QQ邮箱会让我们设置客户端授权码,这个授权码替代上面代码部分的password
即可成功发送邮件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了