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 |