本文主要介绍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("邮件已经成功发送!")
输出结果如下所示: