我们以163邮箱为实例发送邮件,开通使用SMTP来收发邮件,也可以使用其他邮件服务商来发送,方法类似。
1、首先需要开通smtp服务,设置授权码,进入163邮箱首页,点击页面上方“设置--POP3/SMTP/IMAP”,勾选“POP3/SMTP服务”。如图1.1
2、根据提示手机验证,设置好授权码,如图2.1
3、复制下面的代码到编辑器,并做相应的修改。
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = '发送邮箱地址' #发送邮箱地址
pwd = 'xxxxxx' #授权码
receivers = ('目标邮箱地址')#目标邮箱地址
# 三个参数:第一个为文本内容,第二个为plain设置文本格式,第三个为utf-8编码
message = MIMEText("Python发送邮件","plain",'utf-8')
message ['From'] =' a <发送邮箱地址>'
message ['To'] =' b <目标邮箱地址>'
#邮件主题
subject = "这是subject"
message["Subject"] = Header(subject,"utf-8")
try:
#SMTP服务器和SSL协议端口号,使用非本地服务器,需要建立ssl连接。
smtpObj = smtplib.SMTP_SSL("SMTP服务器地址",465)
smtpObj.login(sender,pwd)
smtpObj.sendmail(sender,receivers,message.as_string())
print("邮件发送成功")
except smtplib.SMTPException as e:
print("Error:无法发送邮件.Case:%s"%e)
如图3.1
4、运行后,如果提示不能发送,先排除语法问题,再核对邮箱设置说明是否和程序里的一致,参看下面的图。