Scrapy发送电子邮件

Scrapy可以使用称为 Twisted non-blocking IO的 自己的设施发送电子邮件,该设备远离爬行器的非阻塞IO。您可以配置发送电子邮件的几个设置,并提供简单的API用于发送附件。

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

序号 参数 方法
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非阻塞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(s​​tr) 它指定用于验证的SMTP通道。
5 smtpport(int) 它指定用于连接的SMTP端口。
6 smtptls (boolean) 它使用SMTP STARTTLS实现。
7 smtpssl (boolean) 它管理使用安全的SSL连接。

以下两种方法在指定的MailSender类引用中存在。第一种方法:

classmethod from_settings(settings)

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

设置(scrapy.settings.Settings对象) - 它被视为电子邮件接收者。

另一种方法:

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

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

序号 参数和说明
1 to (list) 它指的是电子邮件接收器。
2 subject (str) 它指定了电子邮件的主题。
3 cc(list) 它指的是接收者列表。
4 body (str) 它指的是电子邮件正文数据。
attachs (iterable) 它指的是电子邮件的附件,附件的MIME类型和附件的名称。
6 mimetype(str) 它代表电子邮件的MIME类型。
7 charset (str) 它指定用于电子邮件内容的字符编码。

 

邮件设置

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

序号 设置和说明 默认值
1 MAIL_FROM 它指发送电子邮件发送电子邮件。 'scrapy @本地'
2 MAIL_HOST 它指的是用于发送电子邮件的SMTP主机。 'localhost' 的
3 MAIL_PORT 它指定用于发送电子邮件的SMTP端口。 25
4 MAIL_USER 它指的是SMTP验证。如果此设置被设置为禁用,则不会进行验证。 没有
5 MAIL_PASS 它提供用于SMTP验证的密码。 没有
6 MAIL_TLS 它提供了使用SSL / TLS将不安全连接升级到安全连接的方法。
7 MAIL_SSL 它使用SSL加密连接实现连接。

Telnet控制台是一个运行在Scrapy过程中的Python shell,用于检查和控制Scrapy运行过程。访问Telnet控制台可以使用以下命令访问telnet控制台:telnet localhost ...