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 = ["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 设置对象进行整合。 它包含以下参数 -

  • 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) 它指的是电子邮件的附件、附件的 mimetype 和附件的名称。
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

查看笔记

扫码一下
查看教程更方便