今天给大家分享如何用Python自动发送电子邮件,当我们在云服务器上部署了爬虫,就希望当爬虫发生异常情况的时候能通过自动发送电子邮件来通知我们.因此学会用Python程序自动发送邮件能减轻不少爬虫监控工作.Python中有一个smtplib内置库,那么我们只需要将对其smtplib.SMTP类进行实例化,便可以实现邮件的发送功能.
一,首先熟悉一下smtplib.SMTP类方法
login(self, user, password, *, initial_response_ok=True)
-user: 邮件名
-passwd: 授权码
我这里使用的是126邮箱,需要登录网易邮件修改设置,在设置里面有POP3/SMTP/IMAP,点击之后勾选POP3/SMTP服务和IMAP/SMTP服务两项服务,之后会提示设置授权码(用于客户端登录)
send_message(self, msg, from_addr=None, to_addrs=None, mail_options=[], rcpt_options={})
-msg: 邮件主体
-from_addr: 发件地址
-to_addrs: 收件地址
sendmail(self, from_addr, to_addrs, msg, mail_options=[], rcpt_options=[])
参数同上.
quit(self) # Terminate the SMTP session.
退出,终止会话.
二,自动发送的整个过程
1.连接到服务器
2.登录
3.发出服务请求
4.退出
根据这四个过程就可以开始写代码了.
三,邮件自动发送完整代码
#! /usr/bin/env python
# coding='utf-8'
from email.header import Header
from email.mime.text import MIMEText
import smtplib
from_addr = '******@126.com'
# 授权码
password = '这里填写授权码'
to_addr = "这里填写你要发送的邮箱地址"
# 邮件服务器地址
smtp_server = 'smtp.126.com'
# 邮件信息
msg = MIMEText('邮件的主体信息', 'plain', 'utf-8')
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = Header('这里填写邮件的主题', 'utf-8').encode()
# 连接邮件服务器
server = smtplib.SMTP(smtp_server, 25)
# 登录邮件
server.login(from_addr, password)
print("登录成功!")
# 开始发送邮件
server.send_message(msg, from_addr, to_addr)
# 退出服务器
server.quit()
print(邮件发送成功!")
这样邮件就自动发送成功了.
喜欢 (15)or分享 (0)