python收发邮件,邮件发送和抄送的顺序不一样,python收发邮件,邮件发送和抄送的顺序不一致
一.导言
在进入正题之前,让我们考虑一下通用的电子邮件协议。SMTP、POP、IMAP都符合TCP/IP协议规范。请不要混淆Exchange是邮件服务器,而不是收发邮件的协议这两个概念。因为是微软的产品,一般不用。
SMTP)或简单邮件传输协议,用于将邮件从源地址传输到目的地址的一组规则控制邮件的中继模式。简单来说就是发送协议。
POP:通过协议,邮件客户端可以从服务器下载邮件,但是客户端的动作(移动邮件,标记为已读等。)不会反馈给服务器。属于接收协议。
IMAP:提供邮件服务器和邮件客户端的双向通信,客户端的所有操作都会反馈给服务器。对于邮件的操作,服务器上的邮件也会做出相应的动作。这是与POP协议的主要区别。属于接收协议。
2.通过SMTP发送短信
Python发邮件很简单,有两个库smtplib和email就够了。使用时直接输入。Smtplib负责发送邮件,email负责制作邮件(邮件内容、主题、收件人、抄送等。).
1.发送普通邮件
1)首先,找到你的邮箱地址。比如我们这里有一个企业邮箱,点击“设置”-“客户端设置”打开SMTP服务器。发送服务器配置:SMTP.exmail.QQ.com(SSL,端口号465)。
2) smtplib和email的用法如下。其中,MIMEText构造对象时,第一个参数是消息体;第二个参数是subType,可以格式化为“plain”和“html”;并且一定要指定字符编码“UTF-8”。“‘纯’是指发送纯文本消息。
fromsmplibimportsmtp _ SSL from email . mime . textimportmimetextdefsendmail(邮件,主题,sender_show,收件人
:部分订阅:字符串邮件主题
据:param sender _ show:str的发送方,比如“xxx”,其实是不行的。
33660 param recipient _ show:str receiver显示多个实际不工作的接收方,比如“,”,比如“xxx,xxxx”,来分隔。
:param to_addrs: str实际收件人
360 param cc _ show: strcc表示实际上不工作。将多个cc分隔成“, xxx,xxxx ”
#填写实际邮件服务器的用户名和密码
user=rootpassword=123456
#邮件内容
Msg=mimetext(message, plain ,_charset=utf-8) #邮件主题
根据msg[Subject]=Subject# sender,实际上并不起作用
Msg[from]=sender_show#收件人显示实际上不起作用
显示在msg[to]=recipient_show#中,实际上并不起作用
消息[Cc]=cc_show
With _ SSL (host= smtp.ex mail。QQ.com ,port=465)作为smtp:#注册邮件服务器
SMTP.login(用户=用户,密码=密码)#实际邮件发送和接收的配置
SMTP.sendmail(from_addr=user,to_addrs=to_addrs.split)、、msg=msg.as_string ) ) if__)
Message=Python测试电子邮件Subject=主题测试
#显示发件人
sender_show=xxx
#显示收件人
recipient_show=xxx
实际发送的收件人数
to _ addrs= XXX @ QQ.com sendmail(邮件,主题,发件人显示,收件人显示,收件人地址).
邮件效果:
2.以HTML格式发送邮件
将MIMEText的第二个参数设置为“html”。例如,mime文本(消息, html ,_charset=utf-8 )
fromsmplibimportsmtp _ SSL from email . mime . textimportmimetextdefsendmail(邮件,主题,sender_show,收件人
Sage: str电子邮件内容
:param Subject:字符串邮件主题描述
:param sender_show: str发送方显示没有实际效果如 xxx
:param recipient _ show:str Recipients显示多个没有实际作用的收件人,用,隔开,如: xxx,xxxx
:param to_addrs: str实际收件人
:param cc_show: str cc表示没有实际作用,多个CC人用,隔开,如: xxx,xxxx
#填写真实的电子邮件服务器用户名和密码
user=rootpassword=123456
#邮件内容
Msg=mimetext(消息, HTML ,_ charset= UTF-8) #消息主题描述
邮件[主题]=主题#发件人显示,不起实际作用
msg[from]=sender_show#收件人显示,不起实际作用
消息[收件人]=recipient_show#抄送人显示,不起实际作用
消息[抄送]=抄送_显示
使用SMTP _ SSL(host= SMTP。电子邮件。QQ。com ,port=465)作为smtp:#登录发送邮件服务器
smtp.login(用户=用户,密码=密码)#实际发送、接收邮件配置
smtp.sendmail(from_addr=user,to_addrs=to_addrs.split(,),msg=msg。as _ string())if _ _ name _ _== _ _ main :
消息=
计算机编程语言邮件发送测试.
纵里寻她千百度
主题=主题测试 #显示发送人
sender_show=xxx
#显示收件人
recipient_show=xxx
#实际发给的收件人
to_addrs=xxx@qq.com 发送邮件(邮件,主题,发件人显示,收件人显示,收件人地址)
邮件效果:
3、发送带附件邮件
发送带附件的邮件需借助类MIMEMultipart(),然后构造邮件内容及附件,多个附件附上多次。
从电子邮件导入SMTP _ SSL。哑剧。电子邮件中的文本导入text。哑剧。multipart importmimeprpurpatdef sendMail(邮件,主题,sender_show,recipient_show,to_addrs,cc _ show= ): :param message:str邮件内容
:参数主题:字符串邮件主题描述
:param sender_show: str发件人显示,不起实际作用如: xxx
:param recipient_show: str收件人显示,不起实际作用多个收件人用,隔开如: xxx,xxxx
:param to_addrs: str实际收件人
:param cc_show: str抄送人显示,不起实际作用,多个抄送人用,隔开如: xxx,xxxx
#填写真实的发邮件服务器用户名、密码
user=rootpassword=123456
#邮件内容
msg=MIMEMultipart()
msg.attach(MIMEText(message, html ,_ charset= utf-8 )#构造附件1,传送当前目录下的测试。文本文件(textfile)文件
att=MIMEText(open(test.txt , rb ).read(), base64 , utf-8 )
属性[内容类型]=应用程序/八位字节流
#这里的文件名可以任意写,写什么名字,邮件中显示什么名字
att[内容处置]=附件;filename= dev。txt 消息。附加(att)#邮件主题描述
邮件[主题]=主题#发件人显示,不起实际作用
msg[from]=sender_show#收件人显示,不起实际作用
消息[收件人]=recipient_show#抄送人显示,不起实际作用
消息[抄送]=抄送_显示
使用SMTP _ SSL(host= SMTP。电子邮件。QQ。com ,port=465)作为smtp:#登录发送邮件服务器
smtp.login(用户=用户,密码=密码)#实际发送、接收邮件配置
smtp.sendmail(from_addr=user,to_addrs=to_addrs.split(,),msg=msg。as _ string())if _ _ name _ _== _ _ main :
消息=
计算机编程语言邮件发送测试.
纵里寻她千百度
主题=主题测试 #显示发送人
sender_show=xxx
#显示收件人
recipient_show=xxx
#实际发给的收件人
to_addrs=xxx@qq.com 发送邮件(邮件,主题,发件人显示,收件人显示,收件人地址)
邮件效果:
4、发送带图片邮件
邮件带图片需要用到另一个类MIMEImage(),多张图片附上多次。
从电子邮件导入SMTP _ SSL。哑剧。电子邮件中的文本导入text。哑剧。multipart importmimetimemultipart from电子邮件。哑剧。image importmimeimagedief sendMail(邮件,主题,sender_show,recipient_show,to_addrs,cc _ show= ): :param message:str邮件内容
:参数主题:字符串邮件主题描述
:param sender_show: str发件人显示,不起实际作用如: xxx
:param recipient_show: str收件人显示,不起实际作用多个收件人用,隔开如: xxx,xxxx
:param to_addrs: str实际收件人
:param cc_show: str抄送人显示,不起实际作用,多个抄送人用,隔开如: xxx,xxxx
#填写真实的发邮件服务器用户名、密码
user=rootpassword=123456
#邮件内容
msg=MIMEMultipart()
msg.attach(MIMEText(message, html ,_ charset= utf-8 )#邮件主题描述
邮件[主题]=主题#发件人显示,不起实际作用
msg[from]=sender_show#收件人显示,不起实际作用
消息[收件人]=recipient_show#抄送人显示,不起实际作用
消息[Cc]=cc_show#指定图片为当前目录
fp=open(test.png , rb )
msgImage=MIMEImage(fp.read())
fp.close()#定义图片ID,在超文本标记语言文本中引用
msg图像。add _ header( Content-ID ,)
消息附加(消息图像)
使用SMTP _ SSL(host= SMTP。电子邮件。QQ。com ,port=465)作为smtp:#登录发送邮件服务器
smtp.login(用户=用户,密码=密码)#实际发送、接收邮件配置
smtp.sendmail(from_addr=user,to_addrs=to_addrs.split(,),msg=msg。as _ string())if _ _ name _ _== _ _ main :
消息=
计算机编程语言邮件发送测试.
纵里寻她千百度
主题=主题测试 #显示发送人
sender_show=xxx
#显示收件人
recipient_show=xxx
#实际发给的收件人
to_addrs=xxx@qq.com 发送邮件(邮件,主题,发件人显示,收件人显示,收件人地址)
邮件效果:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。