python发送邮件发件人_python自动发送邮件自定义邮件发件人和收件人的显示内容...

这段代码展示了如何在Python中自定义邮件的发件人和收件人的显示名称,以及如何使用SMTP服务器发送带有HTML内容的邮件。通过`_format_addr`函数处理显示名称,确保其正确编码。邮件正文使用MIMEText以HTML格式创建,并设置了主题和日期。最后,使用`smtplib`库登录SMTP服务器并发送邮件。
摘要由CSDN通过智能技术生成

#自定义处理邮件收发地址的显示内容

def _format_addr(s):

name,addr = parseaddr(s)

print name

print addr

#将邮件的name转换成utf-8格式,addr如果是unicode,则转换utf-8输出,否则直接输出addr

return formataddr((\

Header(name,'utf-8').encode(),\

addr.encode("utf-8") if isinstance(addr,unicode) else addr))

#邮件对象

msg['From'] = _format_addr(u'测试机 '%from_addr)

msg['to'] = _format_addr(u'吴鹏rhythm '%to_addr)

下图是使用上面代码后,收发件人的邮箱地址显示

以下是python自动发送邮件的完整代码:

#coding=utf-8

from email.header import Header

from email.MIMEMultipart import MIMEMultipart

from email.MIMEText import MIMEText

from email.MIMEBase import MIMEBase

from email.utils import parseaddr,formataddr

import smtplib,time,os

def filepath():

filepath = "D:\\Python27\\selenium_\\report"

listdirs = os.listdir(filepath)

listdir = sorted(listdirs)

filename = os.path.join(filepath,listdir[-1])

return filename

def sendmail(reportfile):

from_addr = "wupeng@formssi.com"

password = "xxxxxx"

to_addr = "qq32712784@163.com"

smtp_server = "smtp.formssi.com"

#自定义处理邮件收发地址的显示内容

def _format_addr(s):

name,addr = parseaddr(s)

print name

print addr

#将邮件的name转换成utf-8格式,addr如果是unicode,则转换utf-8输出,否则直接输出addr

return formataddr((\

Header(name,'utf-8').encode(),\

addr.encode("utf-8") if isinstance(addr,unicode) else addr))

#读取html内容

filepath = reportfile

with open(filepath,'rb') as f:

content = f.read()

#邮件正文是MIMEText

msg = MIMEText(content,'html','utf-8')

#邮件对象

msg['From'] = _format_addr(u'测试机 '%from_addr)

msg['to'] = _format_addr(u'吴鹏rhythm '%to_addr)

msg['Subject'] = Header(u'测试报告自动发送','utf-8').encode()

msg['date'] = time.strftime("%a,%d %b %Y %H:%M:%S %z")

#发送邮件

server = smtplib.SMTP(smtp_server,25)

server.set_debuglevel(1)

server.login(from_addr,password)

server.sendmail(from_addr,to_addr,msg.as_string())

server.quit()

if __name__ == "__main__":

filedir = filepath()

sendmail(filedir)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值