Scrapy – 发送电子邮件
描述
Scrapy可以使用它自己的设施,即Twisted非阻塞IO 来发送电子邮件,这与爬虫的非阻塞IO无关。你可以配置发送电子邮件的一些设置,并为发送附件提供简单的API。
有两种方法来实例化MailSender,如下表所示
序号 | 参数 | 方法 |
---|---|---|
1 | from scrapy.mail import MailSender mailer = MailSender() | 通过使用一个标准的构造函数。 |
2 | mailer = MailSender.from_settings(settings) | 通过使用Scrapy设置对象。 |
The following line sends an e-mail without attachments −
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对象) --它被视为电子邮件接收者。
另一种方法、
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的验证。如果此设置为禁用,则不会有任何验证。 | 无 |
5 | MAIL_PASS 它提供用于SMTP验证的密码。 | 无 |
6 | MAIL_TLS 它提供了使用SSL/TLS将不安全的连接升级为安全连接的方法。 | 假的 |
7 | MAIL_SSL 它实现了使用SSL加密的连接。 | False |