Python发送带有附件、链接、正文,主送抄送多人的邮件

近日在用Python编写邮件发送脚本时遇到的一些问题,解决问题后总结出如下的脚本,以供大家参考。


#coding=utf-8
from smtplib import SMTP
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.header import Header

#邮件正文模板
SendHtml = """
<html>
<h1>验证性测试:</h1>
    <p>看到此段文字说明测试通过。</p>
    <a href="https://www.hao123.com/">hao123</a>
    <br>
    <a href="https://www.baidu.com/?tn=sitehao123">baidu</a>
    <br>
    <a href="http://www.runoob.com/">菜鸟教程</a>
    <br>
    <p><img src="cid:image" alt="兔子" width="100" height="100"></a></p>
    <br>
    <a href="https://baike.baidu.com/item/蝴蝶效应/9283471">Dear 兔子:<br>如果此生只能遇见你一次,愿我带给你的,是最圆满的结局。</a>    
</html>
"""

print "输入发送邮箱服务器"
smtpserver = "smtp.sina.com"
print "输入发送人邮箱用户/密码"
user = "xxx@sina.com"
password = "xxx"
print "输入发送人邮箱"
sender = "xxx@sina.com"
print "输入接收人邮箱"
receiver = ["Test1@foxmail.com","Test2@sina.com"]
print "输入接收人(抄送)邮箱" 
C_receiver = ["Test3@qq.com"]
print "输入发送邮件主题"
subject = "Mail Python Test <验证>"
print "编写Html类型邮件正文"
msg = MIMEMultipart("related")
msg["Subject"]=Header(subject,"utf-8")
msg['From'] = Header(user) #发件人
msg['to'] = Header(",".join(receiver))  #收件人(主送)
msg['Cc'] = Header(",".join(C_receiver))  #收件人(抄送)
msgText = MIMEText(SendHtml,"html","utf-8")
msg.attach(msgText) #添加邮件正文到邮件中

print "输入发送附件"
FilePath = "C:\Users\TZ.png".decode("utf-8")
sendfile = open(FilePath,"rb").read()
addfile = MIMEText(sendfile,"base64","utf-8")
addfile["Content-Type"] = "application/octet-stream"
addfile["Content-Disposition"] = "attachment; filename={}".format(FilePath.split("\\")[-1])
msg.attach(addfile) #添加附件到邮件中

print "邮件正文中添加图片"
fp = open(FilePath, 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
 
# 定义图片 ID,在 HTML 文本中引用
msgImage.add_header('Content-ID', '<image>')
msg.attach(msgImage)

print "连接发送邮件"
smtp = SMTP()
smtp.connect(smtpserver)
smtp.login(user, password)
smtp.sendmail(from_addr=sender, 
            to_addrs=receiver+C_receiver, 
            msg=msg.as_string())
smtp.quit()
print "发送完毕"
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值