900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python 使用公司邮箱发邮件_python 使用腾讯企业邮箱发送邮件

python 使用公司邮箱发邮件_python 使用腾讯企业邮箱发送邮件

时间:2019-10-21 06:20:23

相关推荐

python 使用公司邮箱发邮件_python 使用腾讯企业邮箱发送邮件

概述

使用flask_mail 模块中碰到问题,于是使用基础的smtplib模块进行调试

以前搞过QQ邮箱,代码找不到了,为此这次记录下方便以后复制粘贴

如果简单的代码就是会莫名奇妙的报错,十之八九是单词拼错了。

一般的测试方法!!!

使用Foxmail登录。在foxmail的账户设置里看具体配置。

如用户名,服务器地址,端口。然后复制到代码里。

QQ邮箱及腾讯企业邮箱都要使用授权码进行python登陆

腾讯邮箱支持SSL(不强制开启), 不支持TLS。

错误列表

smtplib.SMTPSenderRefused: (501, 》》》 登陆地址与发件人地址不一致

smtplib.SMTPAuthenticationError: (535, 》》》用户名密码错误

用户名错误

admin写成 amdin了,吐血三升

535,用户名错误

密码错误

535,密码错误

发件人与登陆人的邮件地址不一致

因为登陆时我邮箱地址用的是字符串,发送时用的是变量,正常应该统一使用变量防止出错

501错误,地址不一致

代码示例

from email.header import Header

from email.mime.text import MIMEText

from email.utils import formataddr

import smtplib

# 用户信息

from_addr = 'XXXXX_admin@'

password = 'H3Sv73Gq4BV7XDqG' # # 腾讯QQ邮箱或腾讯企业邮箱必须使用授权码进行第三方登陆

to_addr = '12345678@'

smtp_server = 'smtp.' # 腾讯服务器地址

# 内容初始化,定义内容格式(普通文本,html)

msg = MIMEText('我要发邮件......', 'plain', 'utf-8')

# 发件人收件人信息格式化 ,可防空

# 固定用法不必纠结,我使用lambda表达式进行简单封装方便调用

lam_format_addr = lambda name, addr: formataddr((Header(name, 'utf-8').encode(), addr))

# 传入昵称和邮件地址

msg['From'] = lam_format_addr('发件人昵称', from_addr) # 腾讯邮箱可略

msg['To'] = lam_format_addr('收件人昵称(服务商会自动替换成用户名)', to_addr) # 腾讯邮箱可略

# 邮件标题

msg['Subject'] = Header('邮件的标题......', 'utf-8').encode() # 腾讯邮箱略过会导致邮件被屏蔽

# 服务端配置,账密登陆

server = smtplib.SMTP(smtp_server, 25)

# 腾讯邮箱支持SSL(不强制), 不支持TLS。

# server = smtplib.SMTP_SSL(smtp_server, 465) # 按需开启

# 调试模式,打印日志

# server.set_debuglevel(1) # 按需开启

# 登陆服务器

server.login(from_addr, password)

# 发送邮件及退出

server.sendmail(from_addr, [to_addr], msg.as_string()) #发送地址需与登陆的邮箱一致

server.quit()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。