这里只介绍如何使用python来发送邮件,不包括发送多封邮件。在开始之前下面几点需要注意,并且准备好
【脚本环境】
系统版本:centos7.6
python环境:python3.7
防火墙状态:关闭状态
sendmail服务:已安装
【1.安装sendmail服务】
因为python终究还是使用该邮件服务来发送邮件的,所以,需要提前安装,但是不需要配置。
yum -y install sendmail
systemctl enable sendmail && systemctl restart sendmail
【2.python发送邮件】
主要包括三部分:发送邮件服务的配置、邮件内容配置、接受邮件的配置。
(1)发送邮件端配置:要使用哪个邮箱地址发送,该邮箱地址的服务端地址,该发送邮件的地址的授权码,最后再登录到发送邮件地址;
(2)正文内容:登录到发送邮件地址之后,开始编写邮件正文;注意MIMEText()函数是简单邮件服务,即只需要编写正文内容就可以了,但是如果我们还需要发送附件,还需要使用MIMEMultipart()函数,可以发送附件内容。
(3)设置接收邮件端配置:配置接收端邮箱地址,邮箱主题、发送方、接收方邮箱地址,最后关闭发送方邮箱地址。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 设置发送邮件端的邮箱账号配置
fromUser = input('请输入发件邮箱地址:')
token = input('请输入发件邮箱的授权码:')
fromServer = smtplib.SMTP_SSL('smtp.qq.com', 465)
fromServer.login(fromUser, token)
# 编写正文内容
content = '这是测试python发送邮件的正文内容'
email_content = MIMEText(content, 'plain', 'utf-8')
msg = MIMEMultipart()
msg.attach(email_content)
# 设置邮件
acceptUser = input('请输入接受邮件的邮箱地址: ')
msg['From'] = fromUser
msg['To'] = acceptUser
msg['Subject'] = '测试python发送邮件'
fromServer.sendmail(fromUser, acceptUser, msg.as_string())
# 最后要关闭邮箱服务
fromServer.quit()