python发送表格邮件_python 2.7 利用smtplib发送、抄送邮件以及发送html表格

这篇博客介绍了如何在Python 2.7环境下利用smtplib库发送HTML格式的表格邮件,并实现邮件抄送功能。通过定义`send_mail`函数,设置发件人、收件人、抄送人和邮件内容,然后连接SMTP服务器进行发送。在实际操作中,需要注意列表到字符串的转换,以确保邮件发送成功。如果遇到抄送问题,可以通过打印检查数据类型和格式。
摘要由CSDN通过智能技术生成

开发语言: python2.7

包:smtplib

导入包:import smtplib

定义一个函数:def send_mail(to_list, cc_list, html, sub):

me = mail_user

msg = MIMEText(html, _subtype='html', _charset='utf-8')  # 格式化邮件内容为html,编码为utf-8

msg['Subject'] = sub    # 邮件主题

msg['From'] = me    # 发件人

msg['To'] = ";".join(to_list)  # 收件人,将列表转换为字符串

msg['Cc'] = ";".join(cc_list)  # 抄送人,将列表转换为字符串

try:

send_smtp = smtplib.SMTP()    # 实例化

send_smtp.connect(mail_host)    # 连接smtp服务器

send_smtp.login(mail_user, mail_pass)    # 使用定义的账号密码进行登录

send_smtp.sendmail(me, to_list+cc_list, msg.as_string())    # 发送邮件

send_smtp.close()    # 关闭连接

return True

except Exception, e:

# logging.debug(e)

print e

return False

其中:“to_list”为收件人列表(可以为一个或者多个),“cc_list”为抄送列表(同样为一个或多个),“html”为邮件内容,可以发送html格式的邮件,“sub”为邮件主题。

调用发送邮件函数:if __name__ == '__main__':

mail_host = 'xxx@163.com'

mail_user = 'user@163.com'

mail_pass = 'password'

mailto_list = ['user1@qq.com', 'user2@qq.com', 'user3@qq.com']

mailcc_list = ['5086×××9@163.com']

html = "

 test page

"

sub = "send mail test"

if send_mail(mailto_list, mailcc_list, strhtml, sub):

logging.debug("Send mail succed!")

else:

logging.debug("Send mail failed")

在搜索资料过程中,发现很多人说抄送功能无法实现,可能是因为列表和字符串之间的转换问题,或者是由于send_smtp.sendmail()函数的格式问题,虽然没有报错,但是没有发送成功。

建议大家在使用时,如果没有发送成功或者是抄送成功,可以在to_list,cc_list,msg['To'],msg['Cc']

这里加上print,看一下类型和是否正确;

附smtplib源码地址:https://hg.python.org/cpython/file/2.7/Lib/smtplib.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值