zoukankan      html  css  js  c++  java
  • python笔记38-使用zmail发各种邮件案例代码

    前言

    本篇介绍使用zmail发各种格式的邮件,并运行成功的代码,小伙伴们只需更换自己的邮箱就可以运行起来了

    content_text发送纯文本

    先从最简单的发送纯文本的邮件开始,调通发送邮件的代码。
    以腾讯的企业邮箱为例,smtp_host是发送邮箱的smtp服务地址,不同的邮箱不太一样。

    • smtp_host:smtp.exmail.qq.com
    • smtp_port:465
    import zmail
    
    '''
    作者:上海-悠悠
    QQ交流群:717225969
    '''
    mail = {
        'subject': '邮件主题:Success!',  # Anything you want.
        'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ',  # Anything you want.
    }
    
    server = zmail.server('yourname@xxxx.com',
                          'yourpassword',
                          smtp_host="smtp.exmail.qq.com",
                          smtp_port=465)
    server.send_mail('2833404xx@qq.com', mail)  # 接收着
    

    从上面代码看出,发送邮件的代码也就2句,我们只需关注三个参数

    • mail 发件的内容,包含主题、正文、附件等
    • server 发送邮件人的相关信息,如账号,密码,smtp_host, smtp_port
    • receiver 接收者的邮箱地址

    content_html发送html正文

    如果发送的正文是html格式的,那就用content_html参数,注意content_text和content_html只能二选一
    平常生成的html测试报告,需要发送到邮箱,可以用open函数去读取html正文内容

    import zmail
    
    '''
    作者:上海-悠悠
    QQ交流群:717225969
    '''
    
    # html报告地址D:\aaaa\result.html
    
    with open('D:\aaaa\result.html', 'r', encoding="utf-8") as f:
        content_html = f.read()
    
    mail = {
        'subject': '邮件主题:Success!',  # Anything you want.
        # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ',  # Anything you want.
        'content_html': content_html
    }
    
    server = zmail.server('yourname@xxxx.com',
                          'yourpassword',
                          smtp_host="smtp.exmail.qq.com",
                          smtp_port=465)
    server.send_mail('283340479@qq.com', mail)
    

    也可以自己写html正文内容

    content_html = '''
    <h1>这是一级标题</h1>
    <h2>这是二级标题</h2>
    <h3>这是三级标题</h3>
    <p>这段是有个段落,可以写很多你要写的内容</p>
    <a href="https://www.cnblogs.com/yoyoketang/">点我,可以跳转到我的博客</a>
    '''
    
    mail = {
        'subject': '邮件主题:Success!',  # Anything you want.
        # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ',  # Anything you want.
        'content_html': content_html,
        'attachments': ['/Users/zyh/Documents/example.zip','/root/1.jpg'],  # Absolute path will be better.
    }
    

    attachments带附件

    把report.html的报告同时放到附件去发送,使用attachments参数,只需传附件的绝对路径就可以了.
    传多个附件,放到list里

    import zmail
    
    # html报告地址D:\aaaa\result.html
    with open('D:\aaaa\result.html', 'r', encoding="utf-8") as f:
        content_html = f.read()
    
    
    mail = {
        'subject': '邮件主题:Success!',  # Anything you want.
        # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ',  # Anything you want.
        'content_html': content_html,
        'attachments': ['D:\aaaa\result.html','D:\122.png'],  # Absolute path will be better.
    }
    
    server = zmail.server('yourname@xxxx.com',
                          'yourpassword',
                          smtp_host="smtp.exmail.qq.com",
                          smtp_port=465)
    server.send_mail('2833404xx@qq.com', mail)
    

    正文带图片

    正文,如果想发送一个图片,只需知道图片的url地址就可以了,如下个

    <img src="https://x.xxx.com/xxx.png" width="650" height="340">'
    

    如果是本地的图片,可以转base64后放到img标签,格式

    <img src=“data:image/png;base64,***************************************************"/>
    

    参考代码

    content_html='''
    <p>这是一张图片</p>
    <img src="https://img2018.cnblogs.com/blog/1070438/201906/1070438-20190622235030004-1865146937.png" alt="yoyo png" width="650" height="340">
    '''
    
    mail = {
        'subject': '邮件主题:Success!',  # Anything you want.
        # 'content_text': '邮件正文内容:This message from zmail! QQ交流群:717225969 ',  # Anything you want.
        'content_html': content_html,
        'attachments': ['D:\aaaa\result.html','D:\122.png'],  # Absolute path will be better.
    }
    

    QQ授权码

    如果你的发件邮箱是QQ邮箱,发件人的密码就需要用授权码了,在邮箱设置里面找到授权码
    QQ邮箱smtp_host是smtp.qq.com,多个收件人的话,接收者可以用list

    server = zmail.server('28yourQQ@qq.com',
                          'QQ邮件授权码',
                          smtp_host="smtp.qq.com",
                          smtp_port=465)
    server.send_mail(['2833404xx@qq.com','xx33404xx@qq.com'], mail)
    

    更多资料参考前面这篇:https://www.cnblogs.com/yoyoketang/p/11048495.html

  • 相关阅读:
    测试
    mysql数据库 select语句全集
    Markdown文本的书写格式详解--有道云笔记
    mysql数据忘记库密码
    最新版mysql基本命令操作
    Python从入门到放弃
    第二阶段冲刺
    周总结15
    找水王
    用户体验评价
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/11069875.html
Copyright © 2011-2022 走看看