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(str) 它指定用于验证的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 ...