python3 使用smtp发送邮件

import smtplib
from email.header import Header
from email.mime.text import MIMEText

# 定义第三方smtp服务器相关信息
mail_host = "smtp.qq.com"
mail_user = "[email protected]"
mail_password = "yrkxgbwrpssfhh"

sender = '[email protected]' # 发件人邮箱
receivers = ['[email protected]', '[email protected]'] # 收件人邮箱

messages = MIMEText('python邮件测试', 'plain', 'utf-8') # 邮件正文
messages['From'] = Header('刘宁的python机器人', 'utf-8') # 发件人信息
messages['To'] = Header('测试', 'utf-8') # 收件人信息
messages['Subject'] = Header('Python邮件测试,收到请忽略...', 'utf-8') # 邮件主题

try:
    smtpobj = smtplib.SMTP() # 构建一个smtp实例
    smtpobj.connect(mail_host, 25) # 连接第三方smtp服务
    smtpobj.login(mail_user, mail_password) # 登陆第三方smtp服务器
    smtpobj.sendmail(sender, receivers, messages.as_string()) # 发送邮件
    print('邮件发送成功')
except smtplib.SMTPException:
    print('Error: 无法发送邮件')

# SMTP协议就是简单的文本命令和响应。login()方法用来登录SMTP服务器,sendmail()方法就是发邮件,由于可以一次发给多个人,所以传入一个list,邮件正文是一个str,as_string()把MIMEText对象变成str
# 这是因为邮件主题、如何显示发件人、收件人等信息并不是通过SMTP协议发给MTA,而是包含在发给MTA的文本中的,所以,我们必须把From、To和Subject添加到MIMEText中
# 注意不能简单地传入name ,因为如果包含中文,需要通过Header对象进行编码。

你可能感兴趣的:(python3 使用smtp发送邮件)