版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24935049/article/details/84311812
邮箱提醒
(1)邮箱提醒意义
爬虫过程中出现异常、服务器出现问题。及时反馈。
(2)163邮箱
1.邮箱协议、开启SMTP
**授权码将作为第三方登录使用的密码。
2.发邮箱协议--》SMTP
核心调用模块
扫描二维码关注公众号,回复:
5103962 查看本文章
smtplib 接收邮件
email 发送邮件
3.邮件使用测试
(1) 发送邮件核心代码
from email.mime.text import MIMEText
#第一个参数 邮件正文;第二个参数 plain标识纯文本,第三个参数代表编码格式
msg= MIMEText('测试邮箱通知','plain','utf-8')
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr,formataddr
import smtpb
#定义邮箱服务器地址 字典
stmp_server={'163':'smtp.163.com','qq':'stmp.qq.com'}
4.完整代码操作逻辑:
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr,formataddr
import smtplib
#定义邮箱服务器地址 字典
stmp_server={'163':'smtp.163.com','qq':'stmp.qq.com'}
class email_send:
#定义构造函数
#param1 发件人地址 param2 邮箱密码,param3 收件人地址
def __init__(self,from_addr,password,to_addr,server):
self.from_addr=from_addr
self.password=password
self.to_addr=to_addr
self.server=server
def server_start(self,time):
print(self.server)
#server_test=smtplib.SMTP()
#smtplib.connect(self.server)
self.server=smtplib.SMTP(self.server,time)
def server_stop(self):
self.server.quit()
def _format_addr(self,msg):
name,addr=parseaddr(msg)
return formataddr((Header(name,'utf-8').encode(),addr))
def send_text_data(self,data,data_type,subject_msg):
#设置邮件信息
msg=MIMEText(data,data_type,'utf-8')
msg['From']=self._format_addr(self.from_addr)
msg['To']=self._format_addr(self.to_addr)
msg['Subject']=Header(subject_msg,'utf-8').encode()
#发送邮件
self._send_data(msg.as_string())
def _send_data(self,str_msg):
print(self.from_addr,self.password)
self.server.login(self.from_addr,self.password)
self.server.sendmail(self.from_addr,self.to_addr,str_msg)
if __name__=="__main__":
#第一个参数 邮件正文;第二个参数 plain标识纯文本,第三个参数代表编码格式
msg= '测试邮箱通知'
es=email_send('[email protected]','he280166',['[email protected]'],stmp_server['163'])
es.server_start(25)
es.send_text_data(msg,'plain','测试运行状态')
#es.server_stop()
print('send success')
5.测试结果