python实现QQ邮件的自动收发

先抛出代码
import poplib
from email.mime.text import MIMEText
import email
_user = "[email protected]"
_pwd  = "XXXXXXXXXXXXXXXXXX"
sent=smtplib.SMTP_SSL('smtp.qq.com',465)#设置了SMTP服务器为stmp.qq.com 其端口号为465
sent.login(_user, _pwd)#登陆
try:
    to=['[email protected]','[email protected]']
    content=MIMEText('hhhhhhh,我是小仙女')#MIMEText表示邮件发送具体内容
    content['Subject']='Python邮箱群发测试!hello'
    content['From']='[email protected]'
    content['To']=','.join(to)
  sent.sendmail('[email protected]',to,content.as_string())#三个参数
    sent.close()#关闭邮箱
except smtplib.SMTPException.e:
    print ("Falied,%s"%e )

我刚开始接触这个,原因是之前在填写联系方式的时候,觉得要是写QQ邮箱不是很正式,但是自己学校的邮箱又不是经常登录,害怕错过面试或者什么重要信息,所以想能不能两个邮箱做一个关联,QQ邮箱可以代收学校邮箱的邮件,所以就有了这个。

代码网上有很多,这里我来做一下相关的解析

1.首先要了解,要想实现邮件的收发,需要了解相关的类或者库

poplib是用于pop3收取邮件的模块,相对应的stmplib是遵循stmp协议的邮件发送模块

对比来看,POP(Post Office Protocol)邮局通讯协定POP是互联网上的一种通讯协定,主要功能是用在传送电子邮件,当我们寄信给另外一个人时,对方当时多半不会在线上,所以邮件服务器必须为收信者保存这封信,直到收信者来检查这封信件。当收信人收信的时候,必须通过POP通讯协定,才能取得邮件。POP3表示邮局协议的第三个版本,规定了如何将个人计算机连接到、Internet的邮件服务器和下载电子邮件的电子协议。而STMP(Simple Mail Transfer Protocol)简易邮件传输通讯协议,主要功能是当发电子邮件时必须通过SMTP通讯协议,将邮件发送个对方的邮件服务器,这样等到对方上网的时候才能收到所寄出的信。

SUMMARY:POP3用来收取电子邮件,STMP用来发送电子邮件,而其对应的poplib和stmpib则是遵循对应协议的python库,其中包含对邮件的操作可以直接使用。

2.这篇文章中只用到发送,下次我搞明白接收再来补充。发送的话,python中内置对stmp协议支持的库,一个是email,一个是stmplib,其中email用来构建文件,stmplib用于发送邮件,两者缺一不可。

3.邮件支持群发,只要将收信人用.join(to)联系起来即可。

4.需要提醒的还有两个问题

1)邮箱的登录密码不是真正的QQ密码,而是获取的授权码,这是为了第三方登录邮箱安全考虑所设计的。如果授权码错误或者密码错误会出现error   535, 'Error: \xc7\xeb\xca\xb9\xd3\xc3\xca\xda\xc8\xa8\xc2\xeb\xb5\xc7\xc2\xbc\xa1\xa3\xcf\xea\xc7\xe9\xc7\xeb\xbf\xb4: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256'

参考http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28,授权码不止一个,所以不用每次都修改

2)在测试的时候随便写了几行文字,顺便损一波别人,想搞个恶作剧,结果被官方认为是垃圾邮件,不让我发,所以,建议各位规矩行事,不要学我

3)发现一个问题,这样发邮件根本没有办法做到匿名发送,即使设定了邮件的发送人为小仙女还是会在显示的时候,写的清清楚楚 代发人:[email protected]这样大家还是知道是我发的。哭唧唧。

你可能感兴趣的:(学生)