首先,我们要使用SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)
使用到python的smtplib模块(SMTP, login, sendmail, quit)、email.mime模块(MIMEMultipart,MIMEBase等)
假设我们使用126邮箱的smtp地址:smtp.126.com
from email.mime import multipart
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
import smtplib
import os
from email.mime.image import MIMEImage
def send_mail(fromaddr,psw,toaddr,text,subject,file):
msg = MIMEMultipart()
#以下是SMTP的协议规定字段(不是全都是必选项)
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = subject
msg.attach(MIMEText(text))
part = MIMEBase('application','jpg') #参考MIME手册自己设定
part.set_payload(open(file,"rb").read())
encoders.encode_base64(part) #用base64编码
part.add_header('Content-Disposition', 'attachment;filename=p.jpg') #附件列表中显示的文件名
msg.attach(part) #将文件附件添加到待发送的MIMEMultipart对象msg中
server = smtplib.SMTP('smtp.126.com',25)
server.login(fromaddr, psw) #登陆到SMTP服务器
server.sendmail(fromaddr,toaddr,msg.as_string()) #msg要调用as_string()转换成字节字符流才能发送
server.quit()
今天先写到这了,太困,睡觉去,有不懂的可以问我