zoukankan      html  css  js  c++  java
  • 关于邮箱发送邮件二之附件及图片

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    from email.mime.multipart import MIMEMultipart
    from email.mime.base import MIMEBase
    from email import encoders

    # come_from 是自己的邮箱,password是邮箱的授权码
    come_from = '2577452716@qq.com'# who 用户是谁 ,相当于用户名。
    password = 'jgodszkzfkrqebeb' # 秘钥串 ,相当于密码。

    # to_email 是接收的邮箱
    to_email = '2435224077@qq.com' # 我要发送给谁

    # 邮件服务器
    smtp_server = 'smtp.qq.com' #我们自己不搭建了,有免费的还稳定,出了事情都能找服务商, QQ邮箱的服务域名
    # 想要在邮件中添加附件。首先需要构造一个MIMEMultipart对象表示邮件整体,然后添加一个MIMEText作为邮件正文,添加一个MIMEBase对象作为附件即可
    msg = MIMEMultipart()
    # 邮件头部信息
    msg['From'] = Header(come_from)
    # 发送给谁
    msg['To'] = Header(to_email)
    # 邮件主题
    msg['Subject'] = Header('1908大实训')

    # 附件
    # 附件第二个参数为格式,默认为纯文本,
    # msg.attach(MIMEText('Hello, my friend...', 'plain', 'utf-8'))

    # 邮件中正文显示图片
    # 我们需要先把图片作为附件,然后在HTML中通过引用src="cid:0"就可以把附件作为图片嵌入了。
    # 显示附件图片需要把第二个参数改为html, img标签src属性为 src="cid:0"
    # 图片的第二个参数为html
    msg.attach(MIMEText('<html><body><h1>Hello, my friend...</h1>' +
    '<p><img src="cid:0"></p>' +
    '</body></html>', 'html', 'utf-8'))
    with open('D:/tupian/1.png', 'rb') as f: # 打开需要添加的附件
    mime = MIMEBase('image', 'png', filename='1.png') # 创建MIMEBase对象,即附件内容
    mime.add_header('Content-disposition', 'attachment', filemane='1.png') # 添加必要的头文件
    mime.add_header('Content-ID', '<0>')
    mime.add_header('X-Attachment-ID', '0')
    mime.set_payload(f.read()) # 读进附件的内容
    encoders.encode_base64(mime) # 用base64编码
    msg.attach(mime) # 把附件添加到主体对象中

    # 创建实例
    server = smtplib.SMTP_SSL(smtp_server)
    # QQ邮箱SMTP的端口号是465或587
    server.connect(smtp_server, 465)
    # 登录邮箱
    server.login(come_from, password)
    # 发送邮件
    server.sendmail(come_from, to_email, msg.as_string())
    print("发送完成")
    # 退出邮箱
    server.quit()
  • 相关阅读:
    数据可视化之 图表篇(七)柱形图
    数据可视化之 图表篇(六)桑基图
    数据可视化之 图表篇(五) PowerBI图表不够炫酷?来看看这个
    数据可视化之 图表篇(四) 那些精美的Power BI可视化图表
    数据可视化之 图表篇(三)体验Power BI最新发布的AI图表:分解树
    数据可视化之 图表篇(二)如何用Power BI制作疫情地图?
    数据可视化之 图表篇(一)Power BI可视化,几张图表认识疫情现状
    MCMC随机采样
    Linux中的计划作业
    Linux进程
  • 原文地址:https://www.cnblogs.com/Liu-Hui/p/13258380.html
Copyright © 2011-2022 走看看