Scrapy - 发送电子邮件



描述

Scrapy可以使用其自身名为Twisted 非阻塞IO的工具来发送电子邮件,这避免了爬虫的非阻塞IO。您可以配置发送电子邮件的少量设置,并提供发送附件的简单API。

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

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

以下代码行发送一封不带附件的电子邮件:

mailer.send(to = ["[email protected]"], subject = "subject data", body = "body data", 
   cc = ["[email protected]"])

MailSender 类参考

MailSender类使用Twisted 非阻塞IO从Scrapy发送电子邮件。

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

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

序号 参数 & 描述
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 object) - 被视为电子邮件接收者。

另一种方法:

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

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

序号 参数 & 描述
1

to (list)

指电子邮件接收者。

2

subject (str)

指定电子邮件的主题。

3

cc (list)

指接收者列表。

4

body (str)

指电子邮件正文数据。

5

attachs (iterable)

指电子邮件的附件、附件的MIME类型和附件的名称。

6

mimetype (str)

表示电子邮件的MIME类型。

7

charset (str)

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

邮件设置

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

序号 设置 & 描述 默认值
1

MAIL_FROM

指用于发送电子邮件的发送方邮箱。

'scrapy@localhost'
2

MAIL_HOST

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

'localhost'
3

MAIL_PORT

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

25
4

MAIL_USER

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

None
5

MAIL_PASS

提供用于SMTP验证的密码。

None
6

MAIL_TLS

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

False
7

MAIL_SSL

实现使用SSL加密连接。

False
广告