首先,要实现发邮件总共需要用到email模块和smtplib模块,其中email模块用于构造邮件,smtplib模块用于发送邮件,那么先引入模块
from email.mime.text import MIMEText
from email.header import Header
import smtplib

其中MIMEText用于构造邮件内容
构造邮件信息
message ='''
hello,world!
来自我的电脑
'''
然后用MIMEText构造最终要发送的信息
msg = MIMEText(message,'plain','utf-8')

plain表示纯文本文件,还有html等,在这里不作讨论。utf-8为了保证兼容性
这个msg还需要有‘Subject’、'From'、'To'三个键值对,其中'Subject'对应的是邮件的标题,'From'是发件人,'To'是收件人
msg['Subject'] = Header("来自Python的邮件",'utf-8')
msg['From'] = Header('XXXX@qq.com') #发件邮箱
msg['To'] = Header('receiver','utf-8') #收件邮箱
这样我们的邮件信息就完成了

收发件信息
from_addr = 'XXXX@qq.com' #发件邮箱
password = 'password' #邮箱密码
to_addr = 'XXXX@qq.com' #收件邮箱
smtp_server = 'smtp.qq.com' #SMTP服务器,以QQ为例

发送
try:
server = smtplib.SMTP(smtp_server,25) #第二个参数为默认端口为25,有些邮件有特殊端口
print('开始登录')
server.login(from_addr,password) #登录邮箱
print('登录成功')
print("邮件开始发送")
server.sendmail(from_addr,to_addr,msg.as_string()) #将msg转化成string发出
server.quit()
print("邮件发送成功")
except smtplib.SMTPException as e:
print("邮件发送失败",e)

完成


#!/usr/bin/python

-- coding:utf-8 --

import smtplib
from email.mime.text import MIMEText
from email.header import Header
message ='''
hello,world!
来自我的电脑
'''
msg = MIMEText(message,'plain','utf-8')

msg['From'] = Header('442624872@qq.com')
msg['To'] = Header('nn1183@qq.com','utf-8')
msg['Subject'] = Header("来自Python的邮件",'utf-8')

from_addr = '442624872@qq.com' #发件邮箱
password = 'qgfeddbdgfhbttjjjjcaji' #邮箱密码
to_addr = 'nn1183@qq.com' #收件邮箱
smtp_server = 'smtp.qq.com' #SMTP服务器,以新浪为例
try:
server = smtplib.SMTP(smtp_server,25) #第二个参数为默认端口为25,有些邮件有特殊端口
server.login(from_addr,password) #登录邮箱
server.sendmail(from_addr,to_addr,msg.as_string()) #将msg转化成string发出
server.quit()
print("邮件发送成功")
except smtplib.SMTPException as e:
print("邮件发送失败",e)