python 发送邮件(收到的邮件要有发送方才能回复),python发送方,Python使用SM
python 发送邮件(收到的邮件要有发送方才能回复),python发送方,Python使用SM
Python使用SMTP(简单邮件传输协议)发送邮件普通文本邮件普通文本邮件发送的实现,关键是要将MIMEText中_subtype设置为plain## -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMEText#导入MIMEText类from email import encodersfrom email.header import Headerfrom email.utils import parseaddr, formataddrmail_host="smtp.163.com"#使用的邮箱的smtp服务器地址,这里是163的smtp地址mail_user=raw_input("你的163邮箱: ")#发送方邮箱mail_pass=raw_input("邮箱授权码: ") #授权码mail_postfix="163.com"#邮箱的后缀,网易就是163.commail_from = raw_input("来自: ") #发送方昵称mail_sub = raw_input("邮件主题: ") #邮件主题mail_content = raw_input("内容: ")def send_mail(sub,content): me=mail_from+"<"+mail_user+">" msg = MIMEText(content,‘plain‘,‘utf-8‘)#邮件正文,subtype(文本是plain),编码格式 msg[‘Subject‘] = sub msg[‘From‘] = me to_list = map(None,raw_input("mail_to: ").split(" "))#可以群发 msg[‘To‘] = ",".join(to_list)#将收件人列表以‘,’分隔 try: server = smtplib.SMTP() server.connect(mail_host)#连接服务器 server.login(mail_user,mail_pass)#登录操作 server.sendmail(me, to_list, msg.as_string()) server.close() return True except Exception, e:#捕捉异常,并将异常对象输出 print str(e) return Falseif send_mail(mail_sub , mail_content): #邮件主题和邮件内容 print "done!"else: print "failed!"MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 它是一个互联网标准,扩展了电子邮件标准,使其能够支持: 非ASCII字符文本;非文本格式附件(二进制、声音、图像等);由多部分(multiple parts)组成的消息体;包含非ASCII字符的头信息(Header information)。 这个标准被定义在RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049等RFC中。 MIME改善了由RFC 822转变而来的RFC 2822,这些旧标准规定电子邮件标准并不允许在邮件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英语字符消息和二进制文件,图像,声音等非文字消息原本都不能在电子邮件中传输(MIME可以)。MIME规定了用于表示各种各样的数据类型的符号化方法。 此外,在万维网中使用的HTTP协议中也使用了MIME的框架,标准被扩展为互联网媒体类型。
import smtplibfrom email.mime.text import MIMEText#用来格式化邮件地址from email.header import Headerfrom email.utils import parseaddr, formataddrmsg = MIMEText(‘别人的容忍不是让你践踏的!!‘, ‘plain‘, ‘utf-8‘)# 输入Email地址和口令:from_addr = raw_input(‘From(163邮箱): ‘)#这里的密码一定是授权码,163邮箱原始密码不行。password = raw_input(‘授权码: ‘)# 输入SMTP服务器地址:这里我们用smtp.163.com#smtp_server = raw_input(‘SMTP server: ‘)smtp_server = "smtp.163.com"# 输入收件人地址:to_addr = raw_input(‘To: ‘) def _format_addr(s):name, addr = parseaddr(s)#这个函数会解析出姓名和邮箱地址return formataddr(( Header(name, ‘utf-8‘).encode(), addr.encode(‘utf-8‘) if isinstance(addr, unicode) else addr))def send_mail():#设置发件人,收件人姓名和邮件主题msg[‘From‘] = _format_addr(u‘joker <%s>‘ % from_addr)msg[‘To‘] = _format_addr(u‘朋友 <%s>‘ % to_addr)msg[‘Subject‘] = Header(u‘测试邮件‘, ‘utf-8‘).encode()server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25#server.set_debuglevel(1)#打印出和SMTP服务器交互的所有信息server.login(from_addr, password)#登录服务器#发送邮件,这里第二个参数是个列表,可以有多个收件人#邮件正文是一个str,as_string()把MIMEText对象变成strserver.sendmail(from_addr, [to_addr], msg.as_string())server.quit()return Trueif send_mail():print "done!"
python 发送邮件(收到的邮件要有发送方才能回复)
相关内容
- python3对接聊天机器人API,python3聊天机器人,详情见htt
- 廖雪峰python实战,廖雪峰python,1.ORM框架从使用
- python 读取大文件越来越慢(判断 key 在 map 中,千万别
- python3的输入、输出、变量、数据类型知识内容,pytho
- Python资源大全中文版,,环境管理管理 Pyt
- Python 模块EasyGui,python模块easygui,1、msgBoxms
- Python cx_Oracle问题处理,pythoncx_oracle,今天第一次使用P
- 20170820_python实时获取某网站留言信息,, 主要用的是r
- python中的scapy模块,pythonscapy模块,scapy模块是干嘛
- Selenium2+python自动化57-捕获异常(NoSuchElementException),
评论关闭