爬虫蜘蛛发送电子邮件scrapy.mail使用Twisted非阻塞IO实现(40)python Scrapy教程1.51以上版本
虽然Python通过smtplib 库使发送电子邮件变得相对容易,但Scrapy提供了自己的发送电子邮件的工具,它非常易于使用,并且使用Twisted非阻塞IO实现,以避免干扰非阻塞IO爬虫。它还提供了一个用于发送附件的简单API,并且通过一些设置可以非常轻松地进行配置 。
快速示例
有两种方法可以实例化邮件发件人。您可以使用标准构造函数实例化它:
from scrapy.mail import MailSender
mailer = MailSender()
或者您可以通过Scrapy设置对象实例化它,这将遵循以下设置:
mailer = MailSender.from_settings(settings)
以下是如何使用它发送电子邮件(没有附件):
mailer.send(to=["[email protected]"], subject="Some subject", body="Some body", cc=["[email protected]"])
MailSender类参考
MailSender是用于从Scrapy发送电子邮件的首选类,因为它使用Twisted非阻塞IO,就像框架的其余部分一样。
- classscrapy.mail.MailSender(smtphost=None, mailfrom=None, smtpuser=None, smtppass=None, smtpport=None)
-
参数: - smtphost(str or bytes) – 用于发送电子邮件的SMTP主机。如果省略,
MAIL_HOST
将使用该 设置。 - mailfrom(str) – 用于发送电子邮件的地址(在
From:
标题中)。如果省略,MAIL_FROM
将使用该设置。 - smtpuser – SMTP用户。如果省略,
MAIL_USER
将使用该设置。如果未给出,则不会执行SMTP身份验证。 - smtppass(str or bytes) – 用于身份验证的SMTP传递。
- smtpport(int) – 要连接的SMTP端口
- smtptls(bool) – 使用SMTP STARTTLS强制执行
- smtpssl(bool) – 使用安全的SSL连接强制执行
- classmethod
settingsfrom_settings(
)
- 使用Scrapy设置对象进行实例化,该对象将遵循 这些Scrapy设置。
参数: 设置( scrapy.settings.Settings object
) – 电子邮件收件人
- send(to, subject, body, cc=None, attachs=(), mimetype=‘text/plain’, charset=None)
- 发送电子邮件给给定的收件人。
参数: - to(str or list) – 电子邮件收件人
- subject(str) – 电子邮件的主题
- cc(str or list) – CC的电子邮件
- body (str) – 电子邮件正文
- attachs (collections.abc.Iterable) – 一个可迭代的元组(attach_name、mimetype、file_object),其中 attach_name 是一个字符串,其名称将出现在电子邮件的附件中,mimetype 是附件的 mimetype,file_object 是一个包含附件内容的可读文件对象.
- mimetype(str) – 电子邮件的MIME类型
- charset(str) – 用于电子邮件内容的字符编码
- smtphost(str or bytes) – 用于发送电子邮件的SMTP主机。如果省略,
邮件设置
这些设置定义了MailSender
类的默认构造函数值,可用于在项目中配置电子邮件通知,而无需编写任何代码(对于那些扩展和使用的代码MailSender
)。
MAIL_FROM
默认: 'scrapy@localhost'
发件人使用电子邮件(From:
标题)发送电子邮件。
MAIL_PORT
默认: 25
用于发送电子邮件的SMTP端口。