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("邮件已经成功发送!")
    

输出结果如下所示:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值