Sending e-mail

尽管Python通过smtplib库使发送电子邮件相对容易,但Scrapy提供了自己的发送电子邮件的工具,该工具非常易于使用,并且使用Twisted非阻塞IO来实现,以避免干扰Java的非阻塞IO.履带. 它还提供了一个用于发送附件的简单API,并且只需进行一些设置即可轻松配置.

Quick example

有两种实例化邮件发件人的方法. 您可以使用标准构造函数实例化它:

from scrapy.mail import MailSender
mailer = MailSender()

或者,您可以通过Scrapy设置对象实例化该对象,该对象将遵守设置

mailer = MailSender.from_settings(settings)

这是使用它发送电子邮件(不带附件)的方法:

mailer.send(to=["[email protected]"], subject="Some subject", body="Some body", cc=["[email protected]"])

MailSender class reference

MailSender是用于从Scrapy发送电子邮件的首选类,因为它使用Twisted非阻塞IO ,就像框架的其余部分一样.

class scrapy.mail.MailSender(smtphost=None, mailfrom=None, smtpuser=None, smtppass=None, smtpport=None)
Parameters:
  • smtphost字符串 字节 )–用于发送电子邮件的SMTP主机. 如果省略,将使用MAIL_HOST设置.
  • mailfrom (str) – the address used to send emails (in the From: header). If omitted, the MAIL_FROM setting will be used.
  • smtpuser – SMTP用户. 如果省略,将使用MAIL_USER设置. 如果未给出,将不执行SMTP身份验证.
  • smtppass字符串 字节 )–用于身份验证的SMTP传递.
  • smtpportint )–连接到的SMTP端口
  • smtptlsboolean )–使用SMTP STARTTLS强制执行
  • smtpsslboolean )–使用安全的SSL连接强制执行
classmethod from_settings(settings)

使用Scrapy设置对象实例化,该对象将遵守这些Scrapy设置 .

Parameters: 设置scrapy.settings.Settings对象)–电子邮件收件人
send(to, subject, body, cc=None, attachs=(), mimetype='text/plain', charset=None)

发送电子邮件给指定的收件人.

Parameters:
  • str str 列表 )–电子邮件收件人
  • 主题str )–电子邮件的主题
  • 抄送str str 列表 )–发送给CC的电子邮件
  • 正文str )–电子邮件正文
  • Attachsiterable )–一个可(attach_name, mimetype, file_object)的元组(attach_name, mimetype, file_object) ,其中attach_name是一个字符串,其名称将出现在电子邮件的附件中, mimetype是附件的mimetype, file_object是一个可读文件对象,带有附件内容
  • mimetypestr )–电子邮件的MIME类型
  • charsetstr )–用于电子邮件内容的字符编码

Mail settings

这些设置定义MailSender类的默认构造函数值,可用于在项目中配置电子邮件通知,而无需编写任何代码(对于那些扩展和使用MailSender代码).

MAIL_FROM

Default: 'scrapy@localhost'

发件人电子邮件,用于( From:标头)发送电子邮件.

MAIL_HOST

Default: 'localhost'

用于发送电子邮件的SMTP主机.

MAIL_PORT

Default: 25

用于发送电子邮件的SMTP端口.

MAIL_USER

Default: None

用于SMTP身份验证的用户. 如果禁用,将不执行SMTP身份验证.

MAIL_PASS

Default: None

用于SMTP身份验证的密码,以及MAIL_USER .

MAIL_TLS

Default: False

强制使用STARTTLS. STARTTLS是建立现有不安全连接并将其升级为使用SSL / TLS的安全连接的一种方法.

MAIL_SSL

Default: False

使用SSL加密连接强制连接