今天学到了如何使用Python的smtplib库发送邮件,中间也是遇到了各种各样的错误和困难,还好都一一的解决了。下面来谈一谈我的这段经历。
配置你的邮箱
为什么要配置邮箱呢?具体要配置什么呢?
因为我们申请的一些免费邮箱都是默认不开启smtp/pop协议的。
SMTP是发邮件使用到的计算机网络中应用层协议中的一个;而POP则是收邮件时使用到的计算机网络中的应用层协议的其中一个。这都是理论性的知识了,上过计算机网络这门课的想必都知道,就不多说了。
配置就是要开启这项服务。否则我们就不能实现用Python代码来控制发送和接收邮件了。
我们在配置完成之后,系统会提示给我们一个邮箱客户端的授权码。作用就是我们登陆的时候替代原来的登陆密码。大家一定要完善保存咯。我这里采用的是163的邮箱,所以是可以自己设置这个授权码的。
使用代码发邮件
还是按照,先看代码再研究的策略。如下:
# coding:utf-8 import smtplib from email.mime.text import MIMEText from email.header import Header """ 请确保自己的邮箱的smtp协议开启,都则会出现认证的错误的,如ssh等 """ sender = "1564086XXXX@163.com" # 收件人,可以是多个 receivers = ['102170XXXX@qq.com'] # 三个参数:第一个为纯文本,第二个plain设置文本格式,第三个为编码格式 message = MIMEText('这里是发送的邮件的主要的内容。Pure Text Here!','plain','utf-8') message['From'] = Header('来自Mark','utf-8') message['To'] = Header('测试标题','utf-8') subject = '哈哈哈哈哈哈,这是邮件的主题 ' message['Subject'] = Header(subject,'utf-8') try: smtpObj = smtplib.SMTP() smtpObj.connect('smtp.163.com',25) smtpObj.login(sender,'你的客户端授权码') smtpObj.sendmail(sender,receivers,message.as_string()) smtpObj.quit() print '邮件已成功发送了' except smtplib.SMTPException,e: print e.message