爬虫练习:发送邮件
大约 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())
Loading...
