笔记:python2.7 发邮件代码样例

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

def sendMail(file):
    Suffix = '邮件测试'
    # 创建一个支持多媒体的邮件对象
    msg = MIMEMultipart()
    
    
    to_receiver = ['aa@xx.com','bb@xx.com']    
    cc_receiver = ['cc@xx.com']

    # 邮件里面的发件人
    msg['From'] = Header('dd@xx.com')

    # 邮件里面的收件人
    msg['To'] = ','.join(to_receiver)

    # 邮件里面的抄送
    msg['Cc'] = ','.join(cc_receiver)

    # 邮件里面的主题
    msg['Subject'] = Header(subject, 'utf-8')

    # 邮件正文,我是HTML的格式的正文
    with open('/root/email.html', 'r') as f:
        table_html = f.read()

    # 邮件正文
    text = 'hello world!<br/>' + table_html
    msg.attach(MIMEText(text.strip(), 'html', 'utf-8'))

    # 因为我的HTML代码里面有 image 标签,附带了图片
    # 如果邮箱客户端有开启图片自动下载的话,是不影响图片展示的
    # 但大部分人是不开的,比如一些新手根本不知道这个功能
    # 所以我们要把图片内嵌到邮件里面, 有cid 超链接的方式,就可以展示图片了
    # 但尽量让图片小的,最好别超过100kb
    with open("/root/logo.png", "rb") as f:
        sign_logo = f.read()
    msgImage = MIMEImage(sign_logo)

    # 这边Content-ID 的值和 html里面 image src要对应上才能加载图片
    # <image  src="cid:logo"></image> 类似这样
    msgImage.add_header('Content-ID', '<logo>')
    msg.attach(msgImage)


    # 添加Excel文件到附件
    with open(file, 'rb') as f:
        excel = f.read()
    att1 = MIMEText(excel, 'base64', 'utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    att1["Content-Disposition"] = 'attachment; filename="hello.xlsx"')
    msg.attach(att1)

    try:
        # 邮箱服务端的地址
        smtpobj = smtplib.SMTP_SSL("smtp.qiye.aliyun.com")
        # 465是加密的安全连接端口
        smtpobj.connect("smtp.qiye.aliyun.com", 465)
        # 邮箱登陆账号密码
        # 这边的邮箱账号最好是和发件人一致
        # 不然接收人那边会有提醒是,发件人是msg['From'] 里面的人
        # 代发者是ff@xx.com 这个邮箱
        smtpobj.login("ff@xx.com", "pw")
        smtpobj.sendmail('ff@xx.com', to_receiver+cc_receiver, msg.as_string())
    except Exception as e:
        print(str(e))
    finally:
        smtpobj.quit()

 

一个比较简单的关于发邮件的模版,涵盖了以下功能要素:

1. 邮件实例是怎么创建的

2. 发件人,接收人,抄送者,主题对应的 key 是From,To,Cc,Subject

3. 如何把图片正确的嵌入到HTML格式的邮件正文中

4. 附件文件添加

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值