1、邮箱账号准备
首先需要注册一个个人邮箱,本文以126邮箱为例。
打开设置(网页版)中的POP3/SMTP/IMAP设置,开启POP3/SMTP服务,如果开启了会给出一串授权密码。开启后POP3/SMTP会显示已开启状态。
python登录邮箱的所需信息:
服务器地址 | smtp.126.com |
服务器端口号 | 25 |
邮箱账号 | 邮箱名xxx@126.com |
邮箱密码 | 16位授权密码 |
2、smtplib库发送邮件
python发送邮件主要使用smtplib和email这两个内置库,他们分别用于登录邮箱账号和构建邮件内容(因为邮件内容包含了主题、发件人、收件人、正文等,所以需要email来构建邮箱内容):
常用库:
import smtplib
from email.message import EmailMessage
from email.headerregistry import Address
示例代码:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
def send_email(to_addrs):
# 创建 SMTP 对象
smtp = smtplib.SMTP()
# 连接(connect)指定服务器
smtp.connect("smtp.126.com", port=25)
# 登录,需要:登录邮箱和授权码
smtp.login(user="xxxx2@126.com", password="XXXXXXBCFLGLF")
# 构造MIMEText对象,参数为:正文,MIME的subtype,编码方式
message = MIMEText('亲爱的{}:\n 美好的一天开始了,快乐度过,微笑生活,我能行!早安,愿您好心情,加油!'.format(to_addrs), 'plain', 'utf-8')
message['From'] = Header("Friend <XXXXXX992@126.com>", 'utf-8') # 发件人的昵称
message['To'] = Header(to_addrs, 'utf-8') # 收件人的昵称
message['Subject'] = Header('亲爱的{},早安'.format(to_addrs), 'utf-8') # 定义主题内容
print(message)
smtp.sendmail(from_addr="XXXXXX92@126.com", to_addrs=to_addrs, msg=message.as_string())
smtp.quit()
if __name__ == '__main__':
send_email('XXXXXX92@qq.com')
注意:上述代码xxx.gmail.com谷歌邮箱发送失败! 可以选择下述内容zmail库。
3、zmail库发送邮件
zmail库使用时需要安装:
pip install zmail
示例代码:
import zmail
def base_user():
server = zmail.server('xxx992@126.com', 'GIYCQAPBCFLGLF')
info = {
'subject': '早上好',
'from': 'xxx',
'content_text': 'Have a good time!'
}
res = server.send_mail('xxxx92@qqq.com', info)
print(res)
if __name__ == '__main__':
base_user()
参考博文:
# smtplib - 连接邮箱服务器、登录邮箱import smtplib_hpsym的博客-CSDN博客_import smtplib