分享

17关邮件问题

 闲逸白发 2020-04-17

Q1:TimeoutError问题报错

A1:看看你的host是否出现错误,以及你的网络是否连接正常,可以尝试切换网络

Q2:535报错

A2:

1)是因为未将POP3/SMTP服务开启或使用QQ邮箱时(通过授权码可以进行第三方登录)。

授权码的获取如下:

以qq邮箱为例:

账户>>设置>>开启pop协议>>生成授权码

2)授权码填写中,出现了空格,直接复制粘贴授权码即可

Q3:报错:please run connect()first

A3:去掉port参数或参考一下网址:https://blog.csdn.net/jimmyandrushking/article/details/83061344

Q4:显示554报错

A4:邮件服务器拒绝发送邮件,判断为发送垃圾邮件。建议同学检查邮件内容,是否包含一些比较敏感的内容。

Q5:ValueError: server_hostname cannot be an empty string or start with a leading dot.

A5:改动这句代码

server = smtplib.SMTP_SSL()

# 在括号内加入host参数

server = smtplib.SMTP_SSL(smtp_server)

Q6:UnicodeDecodeError

A6:修改这句代码

server.connect('smtp.qq.com', 465)

为server.connect('smtp.qq.com', 465,'utf-8')

Q:报错:hostname, aliases, ipaddrs = gethostbyaddr(name)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb4 in position 0: invalid start byte

A6:把你的计算机名 改成英文

Q:报错:raise SMTPServerDisconnected('Connection unexpectedly closed')

Q7:端口名字错误

(图片待补充)

修改为正确的端口号码

Q8:ModuleNotFoundError: No module named 'email.mime'; 'email' is not a package

修改py文件名,文件名不能有email关键字眼

Q8:10060错误

授权码错误写为密码

其他可能因素再补充

学习模块,发一封邮件

自动检测
# smtplib 用于邮件的发信动作
import smtplib
from email.mime.text import MIMEText
# email 用于构建邮件内容

# 发信方的信息:发信邮箱,QQ邮箱授权码
from_addr = 'XXXX@qq.com'
password = 'XXXX'

# 收信方邮箱
to_addr = 'XXXXX@qq.com'

# 发信服务器
smtp_server = 'smtp.qq.com'

# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
msg = MIMEText('send by python','plain','utf-8')

# 开启发信服务,这里使用的是加密传输
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server,465)
# 登录发信邮箱
server.login(from_addr, password)
# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())
# 关闭服务器
server.quit()

尽量用QQ邮箱~~~

其他邮箱容易出现拦截等其他问题

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多