scrapy 2.3 发送电子邮件
虽然python使通过 smtplib
Slapy类库提供了自己的发送电子邮件的工具,非常容易使用,并且使用 Twisted non-blocking IO ,以避免干扰爬虫的非阻塞IO。它还提供了一个简单的用于发送附件的API,并且非常容易配置,其中有一些 settings .
快速实例
有两种方法可以实例化邮件发送者。您可以使用标准 __init__
方法:
from scrapy.mail import MailSender
mailer = MailSender()
或者您可以通过一个Scrapy设置对象来实例化它,该对象将尊重 settings ::
mailer = MailSender.from_settings(settings)
下面是如何使用它发送电子邮件(不带附件)::
mailer.send(to=["someone@example.com"], subject="Some subject", body="Some body", cc=["another@example.com"])
MailSender 类引用
mailsender是从scrappy发送电子邮件的首选类,因为它使用 Twisted non-blocking IO 和框架的其他部分一样。
- class
scrapy.mail.
MailSender
(smtphost=None, mailfrom=None, smtpuser=None, smtppass=None, smtpport=None) - 参数
smtphost (str or bytes) -- 用于发送电子邮件的SMTP主机。如果省略,
MAIL_HOST
将使用设置。mailfrom (str) -- 用于发送电子邮件的地址(在
From:
标题)。如果省略, MAIL_FROM
将使用设置。smtpuser -- SMTP用户。如果省略,
MAIL_USER
将使用设置。如果未提供,则不会执行任何SMTP身份验证。smtppass (str or bytes) -- 用于身份验证的SMTP通行证。
smtpport (int) -- 要连接到的SMTP端口
smtptls (bool) -- 使用smtp starttls强制
smtpssl (bool) -- 强制使用安全的SSL连接
- classmethod
from_settings
(settings) 使用Scrapy设置对象实例化,该对象将 these Scrapy settings .
- 参数
settings (
scrapy.settings.Settings
object) -- 电子邮件收件人
send
(to, subject, body, cc=None, attachs=(), mimetype='text/plain', charset=None)向指定的收件人发送电子邮件。
- 参数
to (str or list) -- 以字符串或字符串列表的形式显示电子邮件收件人
subject (str) -- 电子邮件的主题
cc (str or list) -- 以字符串或字符串列表的形式向CC发送电子邮件
body (str) -- 电子邮件主体
attachs (collections.abc.Iterable) -- 不可数元组
(attach_name, mimetype, file_object)
在哪里?attach_name
是一个字符串,其名称将显示在电子邮件附件中,mimetype
是附件的mimetype,并且file_object
是具有附件内容的可读文件对象mimetype (str) -- 电子邮件的mime类型
charset (str) -- 用于电子邮件内容的字符编码
更多建议: