Python邮件发送

本文主要介绍Python代码发送邮件的各种方式。

代码示例如下所示:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

def send_email(content):
    smtp_server = 'smtp.exmail.qq.com'
    from_account = 'XXX@qq.com'
    from_passwd = 'XXXXXX'
    to_account = 'XXX@qq.com'
    
    email_client = smtplib.SMTP(smtp_server)
    email_client.login(from_account, from_passwd)
    #创建标题和正文内容
    msg = MIMEText(content, 'html', 'utf-8') 
    msg['Subject'] = Header('邮件推送', 'utf-8')
    msg['From'] = from_account
    msg['To'] = to_account
    email_client.sendmail(from_account, to_account, msg.as_string())
    email_client.quit()

if __name__ == "__main__":
    #创建一个MIMEText对象,分别指定HTML内容、类型(文本或html)、字符编码
    content = """
    
        <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>RDD基本操作</title>
    </head>
    <body>
    <table border="1" width="800" bordercolor="grey" cellspacing="0" cellpadding="2" style="font-family:微软雅黑;font-size:12px;text-align:center">
        <caption><h1>RDD基本操作</h1></caption>
        <tr>
            <th width="150">操作类型
            </th><th width="150">函数名</th>
            <th>作用</th>
        </tr>
        
        <tr>
            <td rowspan="8">转化操作</td>
            <td>map()</td>
            <td style="text-align:left">参数是函数,函数应用于RDD每一个元素,返回值是新的RDD</td>
        </tr>
        
        <tr><td>flatMap()</td><td>参数是函数,函数应用于RDD每一个元素,将元素数据进行拆分,变成迭代器,返回值是新的RDD</td></tr>
        <tr><td>filter()</td><td>参数是函数,函数会过滤掉不符合条件的元素,返回值是新的RDD</td></tr>
        <tr><td>distinct()</td><td>没有参数,将RDD里的元素进行去重操作</td></tr>
        <tr><td>union()</td><td>参数是RDD,生成包含两个RDD所有元素的新RDD</td></tr>
        <tr><td>intersection()</td><td>参数是RDD,求出两个RDD的共同元素</td></tr>
        <tr><td>subtract()</td><td>参数是RDD,将原RDD里和参数RDD里相同的元素去掉</td></tr>
        <tr><td>cartesian()</td><td>参数是RDD,求两个RDD的笛卡儿积</td></tr>
        
        <tr>
            <td rowspan="7">行动操作</td>
            <td>collect()</td>
            <td>返回RDD所有元素</td>
        </tr>
        
        <tr><td>count()</td><td>RDD里元素个数</td></tr>
        <tr><td>countByValue()</td><td>各元素在RDD中出现次数</td></tr>
        <tr><td>reduce()</td><td>并行整合所有RDD数据,例如求和操作</td></tr>
        <tr><td>fold(0)(func)</td><td>和reduce功能一样,不过fold带有初始值</td></tr>
        <tr><td>aggregate(0)(seqOp,combop)</td><td>和reduce功能一样,但是返回的RDD数据类型和原RDD不一样</td></tr>
        <tr><td>foreach(func)</td><td>对RDD每个元素都是使用特定函数</td></tr>
        
    </table>
    </body>
    </html>"""
    
    #发送邮件
    send_email(content)
    print("邮件已经成功发送!")
    

输出结果如下所示:


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页