项目所需要的库:
email.mime.text.MIMEText() 用于承载邮件主要文字内容,图片内容用...text.MIMEImage()库
smtplib 用于连接邮件服务器
先上代码:
import smtplib from email.mime.text import MIMEText from email.header import Header #编写好邮件正文内容 msg = MIMEText("儿子啊,我是你子欲养而亲不待的亲妈啊!",'plain',"utf-8") #添加收发件人和主题,一定要写,不是最好!,而且最好和下面邮箱一致 msg['From'] = "xxxxxxxx@163.com" msg["To"] = 'xxxxxxxxx@foxmail.com' #这是添加主题的一种方式,也可同上 msg['Subject'] = Header('你妈找你','utf-8') #添加收发件人邮箱,发件邮箱授权码(不是密码) from_addr = "xxxxxxxxx@163.com" password = "xxxxxxx" #获取方法各网站不同,但都在设置那 to_addr = "xxxxxxx@foxmail.com" #填写邮箱smtp服务器地址,一般格式是smtp.XXX.com smtp_server = 'smtp.163.com' try: #实例化一个smtplib对象 server = smtplib.SMTP() #尝试连接,正常则返回正常状态码,异常则抛出错误 server.connect(smtp_server,25) #打印出于服务器的交互信息 server.set_debuglevel(1) #登陆,发送 server.login(from_addr,password) server.sendmail(from_addr,[to_addr],msg.as_string()) print("发送邮件成功!") except smtplib.SMTPException: print("发送邮件失败!") finally: server.quit()
看,这不收到了吗?
起初我是看着廖大的教程去敲的,但是报错,错误代码是 554 DT:SPM
网易给出的解释是:•554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件.
详见 企业退信的常见问题
这个可能是直接原因,但我网上搜了很多,找到了不少根本原因:
1.因为没写主题的 2.写了主题,但主题为test的 3.没添加收发件人的 4.连接失败过多导致ip被封,连接手机热点就发出的 5.也就是我这种,收发件人与收发邮箱不一样的
其实第5点不需要完全一样,只要包含其中字段就好了.比如,可以改成XXX<xxxxxx.xxx.xxx>