首先要有模块概念,然后利用模块中的相关API,实现发送邮件功能
smtplib——SMTP协议客户端
相关API学习
- 利用SMTP协议进行登录,SMTP.login(user, password, *, initial_response_ok=True)
user:登录邮箱用户名
password:登录邮箱密码(自己是在邮箱开启SMIP服务,获取第三方客户端的最新授权码) - 发送邮件,SMTP.sendmail(from_addr, to_addrs, msg, mail_options=(), rcpt_options=())
from_addr:邮件发送者地址
to_addrs:字符串列表,邮件发送地址
msg:发送的信息
3.加密传输, smtplib.SMTP_SSL(host=’’, port=0, local_hostname=None, keyfile=None, certfile=None, [timeout, ] - 连接到给定端口上的主机。默认设置是在标准SMTP端口(25)上连接到本地主机,SMTP.connect(host=‘localhost’, port=0)
- 关闭服务器,SMTP.quit()
- 邮件的具体内容,还得靠email包来实现,email包下的text文件中引入MIMEText方法。
MIMEText(msg,type,chartset)
msg:文本内容,可自定义
type:文本类型,默认为plain(纯文本)
chartset:文本编码,中文为“utf-8”
from email.mime.text import MIMEText
from email.header import Header
import smtplib
#引入模块smtplib——SMTP协议客户端
# 发信方的信息:发信邮箱,QQ邮箱授权码
from_addr=''
password =''
# 收信方邮箱
to_addr =''
msg = MIMEText('你要发的内容','plain','utf-8')
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addr)
msg['Subject'] = Header('收件人下面')
# 发信服务器
smtp_server ='smtp.qq.com'
# 开启发信服务,这里使用的是加密传输
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server,465)#这个465是端口号,如果不是465就换587试试,实在不行就只能公共端口号25了
# 登录发信邮箱
server.login(from_addr, password)
# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())
# 关闭服务器
server.quit()