Python发送邮件
SMTP(Simple Mail Transfer Protocol)简单邮件传输协议
MTA:邮件传送代理
SMTP协议只能发送邮件不能用来接收邮件
SMTP协议默认TCP端口号:25
工作形式: 1.客户-->服务器
2.服务器-->服务器
POP3(Post Office Protocol):传输工作协议
IMAP(Internet Message Access Protocol):交互式邮件存取协议
POP3协议为用户提供一种简单、标准的方式来访问邮箱和获取电邮
工作过程:连接服务器、获取所有信息并保存在用户主机、从服务器删除这些消息然后断开连接。
POP3协议的默认TCP端口号是110。
IMAP协议提供方便的邮件下载服务,可以让用户离线阅读。
IMAP协议默认TCP端口号是143。
邮件格式:
收件人
收件人
主题
邮件正文
Email email.mime.text.MIMEText
配置文件:
#coding = utf-8
import smtplib #导入简单邮件传输协议库
from email.mime.text import MIMEText
msg = MIMEText('Python发送的邮件','plain','utf-8')
msg['Subject']='Letter of Python'
msg['From']='****@qq.com'
msg['To']='****@qq.com'
server=smtplib.SMTP_SSL('smtp.qq.com',465)
server.set_debuglevel(1)
server.login('****@qq.com','****') //需要先登录一个邮箱,填入账号和密码
Tolist=['****@qq.com','****@qq.com'] //目标邮箱地址
server.sendmail('1378478241@qq.com',Tolist,msg.as_string())
server.quit()
运行主程序
/++++++++------------========************************========------------++++++++/
import smtplib
import os
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email import encoders
user = '1378478241@qq.com'
pwd = 'qfgezkkwzuiegcfh'
Tolist=['*****@qq.com','*****@163.com'] //目标邮箱地址
msg = MIMEMultipart()
msg['Subject'] = 'Title'
content1 = MIMEText('Hello,I am Python!', 'plain', 'utf-8')
msg.attach(content1) //添加附件
attfile = 'G://TestDemo//venv//网络爬虫学习//test.txt' //附件文件夹
attPic = 'G://TestDemo//venv\网络爬虫学习//at2.jpg' //附加的图片
basename = os.path.basename(attfile)
picname = os.path.basename(attPic)
fp = open(attfile, 'rb') //添加附件
fp1 = open(attPic,'rb')
att = MIMEText(fp.read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
att.add_header('Content-Disposition', 'attachment',filename=('gbk', '', basename))
encoders.encode_base64(att)
msg.attach(att)
att1 = MIMEText(fp1.read(),'base64','utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1.add_header('Content-Disposition', 'attachment',filename=('gbk', '', picname))
encoders.encode_base64(att1)
msg.attach(att1)
#-----------------------------------------------------------
s = smtplib.SMTP('smtp.qq.com')
s.login(user, pwd)
s.sendmail(user, Tolist, msg.as_string())
print('发送成功')
s.close()