首先,要实现发邮件总共需要用到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)