Python邮箱提醒

版权声明:本文为博主原创文章,未经博主允许不得转载。 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.测试结果

猜你喜欢

转载自blog.csdn.net/qq_24935049/article/details/84311812