python发送邮件实例

准备工作:

要想使用python发送邮件,需要借助第三方库 pyemail,需要在计算机中安装这个库,安装第三方库的方法,参考下面链接:

https://blog.csdn.net/liangmengbk/article/details/106731269

 

需要准备好163邮箱(发件人)的授权密码,操作步骤如下:

 

进入这个页面后,会看到下面的信息

 因为我的邮箱已经开通了授权密码,如果没有开通的话根据页面提示开通即可,开通的目的是为了获取到授权密码。

这里的授权密码并非邮箱的登录密码,授权密码是开通授权密码功能后系统生成的一个字符串。

 

 

准备工作完成后,就可以写代码发送电子邮件了,下面以163邮箱为例,发送一封邮件到qq邮箱。

 

邮件发送

编写python代码

import smtplib
from email.mime.text import MIMEText

msg_from="aaaaa@163.com" #发送方地址
pwd="ABCDEF" #授权密码
to="123456@qq.com,aaaaa@163.com" #接收方地址

subject="python" #邮件主题
content="hello i am python" #邮件内容

#构造邮件
msg=MIMEText(content) #msg为邮件内容对象
msg["Subject"]=subject
msg["Form"]=msg_from
msg["To"]=to

#发送邮件
try:
	ss=smtplib.SMTP_SSL("smtp.163.com",465) #465为网易邮箱的端口号  ss是邮件对象
	ss.login(msg_from,pwd)
	ss.sendmail(msg_from,to,msg.as_string()) #发送邮件
	print("邮件发送成功!")
except Exception as e:
	print("邮件发送失败!错误信息:",e)

 

代码编写完成,运行代码,即可发送邮件到目标邮箱。

 

发送成功后,可以在qq邮箱中收到来自163邮箱的一封邮件:

 

 

可能出现的异常:

异常1:

500报错,官方解释为:发送的smtp命令语法有误;

意思就是代码语法错误,这时候检查一下代码,看是不是有明显的语法问题。如果没有检查到语法问题,那就可能跟计算机的DNS配置有关。

可以先看下计算机的DNS配置,查看方式:控制面板--网络和Internet--网络和共享中心--本地连接--详细信息

这时候可以看到网络连接的详细信息,如下图所示:

 其中有一项为连接特定的DNS后缀,显示的值为DHCP HOST,现在需要做的就是修改这个值,把值修改为DHCP

操作步骤:

这样就把DNS后缀修改为HOST,再次查看网络连接详细信息,发现DSN后缀已经被修改了:

这时候再重新运行邮件发送程序代码,就不再报500的错误了。

 

 异常2:

 554报错,官方解释为:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;

解决方法1:检查一下邮件的标题和内容,是否有敏感字符,如果有请删除或修改。

解决方法2:邮件的标题中不要包含  test测试  之类的字符。

解决方法3:将发件人的邮箱地址添加到收件人中,如下图所示:

其中aaaaa@163.com为发件人,123456@qq.com为收件人,在收件人的邮箱地址中,使用逗号将发件人的邮件地址添加进去。

这时候再运行程序,不会再报554的异常了。

 

下面链接为网易邮箱邮件发送错误代码信息,可以根据报错信息查找错误原因:

http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值