Scrapy - 发送电子邮件

说明

Scrapy 可以使用其自己的功能发送电子邮件,该功能称为 Twisted 非阻塞 IO,可避免爬虫程序的非阻塞 IO。您可以配置发送电子邮件的几个设置,并提供发送附件的简单 API。

有两种方法可以实例化 MailSender,如下表所示 −

Sr.No 参数 方法
1 from scrapy.mail import MailSender mailer = MailSender() 使用标准构造函数。
2 mailer = MailSender.from_settings(settings) 通过使用 Scrapy 设置对象。

以下行发送不带附件的电子邮件 −

mailer.send(to = ["receiver@example.com"], subject = "subject data", body = "body data",
    cc = ["list@example.com"])

MailSender 类参考

MailSender 类使用 Twisted non-blocking IO 从 Scrapy 发送电子邮件。

class scrapy.mail.MailSender(smtphost = None, mailfrom = None, smtpuser = None,
    smtppass = None, smtpport = None)

下表显示了 MailSender 类中使用的参数 −

Sr.No 参数与说明
1

smtphost (str)

SMTP 主机用于发送电子邮件。如果没有,则将使用 MAIL_HOST 设置。

2

mailfrom (str)

收件人的地址用于发送电子邮件。如果没有,则将使用 MAIL_FROM 设置。

3

smtpuser

它指定 SMTP 用户。如果未使用,则将使用 MAIL_USER 设置,并且如果没有提及,则不会进行 SMTP 验证。

4

smtppass (str)

它指定用于验证的 SMTP 密码。

5

smtpport (int)

它指定用于连接的 SMTP 端口。

6

smtptls (boolean)

它使用 SMTP 实现STARTTLS。

7

smtpssl (boolean)

它使用安全的 SSL 连接进行管理。

MailSender 类引用中指定了以下两种方法。第一种方法,

classmethod from_settings(settings)

它通过使用 Scrapy 设置对象进行合并。它包含以下参数 −

settings (scrapy.settings.Settings 对象) −它被视为电子邮件接收器。

另一种方法,

send(to, subject, body, cc = None, attachments = (), mimetype = 'text/plain', charset = None)

下表包含上述方法的参数 −

Sr.No 参数与说明
1

to (list)

它指的是电子邮件接收者。

2

subject (str)

它指定电子邮件的主题。

3

cc (list)

它指的是接收者的列表。

4

body (str)

它指的是电子邮件正文数据。

5

attachs (iterable)

它指的是电子邮件的附件、附件的mimetype和附件的名称。

6

mimetype (str)

它表示电子邮件的MIME类型。

7

charset (str)

它指定用于电子邮件内容的字符编码。

邮件设置

以下设置确保我们无需编写任何代码,就可以使用项目中的MailSender类配置电子邮件。

Sr.No 设置 &描述 默认值
1

MAIL_FROM

用于发送电子邮件的发件人电子邮件。

'scrapy@localhost'
2

MAIL_HOST

用于发送电子邮件的 SMTP 主机。

'localhost'
3

MAIL_PORT

指定用于发送的 SMTP 端口电子邮件。

25
4

MAIL_USER

它指的是 SMTP 验证。如果此设置设置为禁用,则不会进行验证。

5

MAIL_PASS

它提供用于 SMTP 验证的密码。

6

MAIL_TLS

它提供使用 SSL/TLS 将不安全连接升级为安全连接的方法。

False
7

MAIL_SSL

它使用 SSL 加密连接实现连接。

False