爬虫练习:发送邮件

时游大约 1 分钟

发送邮件

代码

import smtplib
from email.mime.text import MIMEText  # 构建邮件正文

# 帐号信息
mail_user = "xxxxxx@qq.com"
mail_pass = ""  # 授权码

# 收发件人
sender = "xxxxx@qq.com"  # 发件人
receiver = "xxxx@qq.com"  # 收件人

# 构建邮件内容
message = MIMEText("这是一个测试自动化发送邮件的脚本", "plain", "utf-8")
message["Subject"] = 'Python 邮件发送测试'
message["From"] = sender
message["To"] = receiver

# 发送
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
server.login(mail_user, mail_pass)
server.sendmail(sender, receiver, message.as_string())
server.quit()
print("邮件发送成功")

扩展:发送 HTML 邮件

MIMEText 的第二个参数从 "plain" 改为 "html",正文即可使用标签排版,适合发送爬虫日报之类的格式化内容。

from email.mime.text import MIMEText

# 爬虫结果拼接成HTML表格
hot_list = [
    {"rank": 1, "title": "热搜第一条", "hot": "1200万热度"},
    {"rank": 2, "title": "热搜第二条", "hot": "800万热度"},
]

rows = ""
for item in hot_list:
    rows += f"<tr><td>{item['rank']}</td><td>{item['title']}</td><td>{item['hot']}</td></tr>"

html = f"""
<h3>知乎热搜日报</h3>
<table border="1" cellpadding="6">
    <tr><th>排名</th><th>标题</th><th>热度</th></tr>
    {rows}
</table>
"""

message = MIMEText(html, "html", "utf-8")
message["Subject"] = "知乎热搜日报"
message["From"] = sender
message["To"] = receiver

# 发送部分与纯文本邮件一致;收件人为多个时,传入列表即可
# server.sendmail(sender, [receiver1, receiver2], message.as_string())
上次编辑于:
贡献者: 15327360835
Loading...