发送电子邮件¶
尽管 Python 通过 smtplib
库使发送电子邮件变得相对容易,但 Scrapy 提供了自己的发送电子邮件工具,该工具非常易于使用,并且使用 Twisted 非阻塞 IO 实现,以避免干扰爬虫的非阻塞 IO。它还提供了一个简单的 API 用于发送附件,并且非常易于配置,只需几个 设置。
快速示例¶
有两种方法可以实例化邮件发送器。您可以使用标准的 __init__
方法实例化它
from scrapy.mail import MailSender
mailer = MailSender()
或者您可以通过传递一个 scrapy.Crawler
实例来实例化它,它将遵循 设置
mailer = MailSender.from_crawler(crawler)
以下是如何使用它发送电子邮件(无附件)
mailer.send(
to=["[email protected]"],
subject="Some subject",
body="Some body",
cc=["[email protected]"],
)
MailSender 类参考¶
MailSender 是从 Scrapy 发送电子邮件的首选类,因为它使用 Twisted 非阻塞 IO,就像框架的其余部分一样。
- class scrapy.mail.MailSender(smtphost=None, mailfrom=None, smtpuser=None, smtppass=None, smtpport=None)[source]¶
- 参数:
- classmethod from_crawler(crawler)[source]¶
使用
scrapy.Crawler
实例进行实例化,它将遵循 这些 Scrapy 设置。- 参数:
crawler – 爬虫
- send(to, subject, body, cc=None, attachs=(), mimetype='text/plain', charset=None)[source]¶
将电子邮件发送给指定的收件人。
- 参数:
subject (str) – 电子邮件主题
body (str) – 电子邮件正文
attachs (collections.abc.Iterable) – 元组的迭代器
(attach_name, mimetype, file_object)
,其中attach_name
是一个字符串,表示电子邮件附件中显示的名称,mimetype
是附件的 MIME 类型,file_object
是一个可读的文件对象,包含附件的内容mimetype (str) – 电子邮件的 MIME 类型
charset (str) – 用于电子邮件内容的字符编码
邮件设置¶
这些设置定义了 MailSender
类的默认 __init__
方法值,并且可用于在项目中配置电子邮件通知,而无需编写任何代码(对于那些使用 MailSender
的扩展和代码)。
MAIL_FROM¶
默认值:'scrapy@localhost'
用于发送电子邮件的发送方电子邮件(From:
标头)。
MAIL_HOST¶
默认值:'localhost'
用于发送电子邮件的 SMTP 主机。
MAIL_PORT¶
默认值:25
用于发送电子邮件的 SMTP 端口。
MAIL_USER¶
默认值:None
用于 SMTP 身份验证的用户。如果禁用,则不会执行 SMTP 身份验证。
MAIL_PASS¶
默认值:None
用于 SMTP 身份验证的密码,以及 MAIL_USER
。
MAIL_TLS¶
默认值:False
强制使用 STARTTLS。STARTTLS 是一种将现有的不安全连接升级为使用 SSL/TLS 的安全连接的方法。
MAIL_SSL¶
默认值:False
强制使用 SSL 加密连接。