1.在emailsender.py 文件中
# 目的
# 封装邮件发送的逻辑 不管哪一个项目或者文件需要发送
# 只需要引入这个文件 并且实现其方法 就能发送邮件
import smtplib
import email
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
class SendEmail(object):
def __init__(self):
self.email_host = 'smtp.qq.com'
self.email_port = '465'
self.email_sender = '发送者邮箱'
self.email_receiver = '接收者邮箱'
self.email_password = '授权码'
#发送纯文本邮件
# body 为字符串
def send_text_email(self,body,receiver,subject):
# 1.内容主体
# 2.内容类型
# 3.编码方式
message_text = MIMEText(body,'plain','utf-8')
message_text['From'] = self.email_sender
message_text['To'] = receiver
message_text['Subject'] = subject
try:
email_client = smtplib.SMTP_SSL(self.email_host,self.email_port)
login_result = email_client.login(self.email_sender,self.email_password)
print('开始登录',login_result)
# 如果有登录信息 而且登录信息里面第一条状态码为235说明登陆成功
if login_result and login_result[0] ==235:
print('登录成功')
email_client.sendmail(self.email_sender,receiver,message_text.as_string())
print('发送完成')
else:
print('登录失败')
except Exception as e :
print('邮件发送失败',e)
2.然后进入爬虫文件中
import scrapy
import datetime
from ..emailsender import SendEmail
class YxSpider(scrapy.Spider):
name = 'yx'
allowed_domains = ['baidu.com']
start_urls = ['http://www.baidu.com/']
def start_requests(self):
email = SendEmail()
body = '爬虫开始:{}'.format(datetime.datetime.now())
subject = '重要通知,明天放假'
receiver = '接收者邮箱'
email.send_text_email(body,receiver,subject)
yield scrapy.Request(url='https://www.baidu.com')
3.在终端执行scrapy框架即可发送邮件