发送电子邮件
虽然Python通过smtplib库发送电子邮件比较容易,但Scrapy提供了自己的发送电子邮件的功能,这非常易于使用,并且使用Twisted非阻塞IO实现,以避免干扰非阻塞IO爬行器。它还提供了一个用于发送附件的简单API,并且通过一些设置很容易配置。
快速的例子
有两种方式来实例化邮件发件人。您可以使用标准构造函数实例化它:
从scrapy.mail导入MailSender
mailer = MailSender()
或者您可以实例化通过Scrapy设置对象,这将尊重设置:
mailer = MailSender.from_settings(设置)
这里是如何使用它发送电子邮件(没有附件):
mailer.send(to = [“[email protected]”],subject =“Some subject”,body =“Some body”,cc = [“[email protected]”])
MailSender类引用
MailSender是用于从Scrapy发送电子邮件的首选类,因为它使用了Twisted非阻塞IO,就像框架的其余部分。
class scrapy.mail.MailSender(smtphost = None,mailfrom = None,smtpuser = None,smtppass = None,smtpport = None)
参数:
smtphost(str) - 用于发送电子邮件的SMTP主机。如果省略,将使用MAIL_HOST设置。
mailfrom(str) - 用于发送电子邮件的地址(From:标题)。如果省略,将使用MAIL_FROM设置。
smtpuser - SMTP用户。如果省略,将使用MAIL_USER设置。如果没有给出,则不会执行SMTP验证。
smtppass(str) - SMTP通过验证。
smtpport(int) - 要连接的SMTP端口
smtptls(boolean) - 强制使用SMTP STARTTLS
smtpssl(boolean) - 强制使用安全的SSL连接
classmethod from_settings(settings)
实例化使用Scrapy设置对象,这将抵消这些Scrapy设置。
参数:settings(scrapy.settings.Settings object) - 电子邮件收件人
send(to,subject,body,cc = None,attachs =(),mimetype ='text / plain',charset = None)
发送电子邮件给给定的收件人。
参数:
到(str或str列表) - 电子邮件收件人
subject(str) - 电子邮件的主题
cc(str或str的列表) - 到CC的电子邮件
身体(str) - 电子邮件身体
attach(iterable) - 一个可重复的元组(attach_name,mimetype,file_object),其中attach_name是具有将出现在电子邮件附件上的名称的字符串,mimetype是附件的mimetype,file_object是一个可读的文件对象,具有附件的内容
mimetype(str) - 电子邮件的MIME类型
charset(str) - 用于电子邮件内容的字符编码
邮件设置
这些设置定义了MailSender类的默认构造函数值,可用于在项目中配置电子邮件通知,而无需编写任何代码(对于那些使用MailSender的扩展和代码)。
MAIL_FROM
默认值:'scrapy @ localhost'
发送电子邮件使用(发件人:标题)发送电子邮件。
MAIL_HOST
默认值:'localhost'
用于发送电子邮件的SMTP主机。
MAIL_PORT
默认值:25
用于发送电子邮件的SMTP端口。
MAIL_USER
默认值:无
用于SMTP认证的用户。如果禁用,则不会执行SMTP验证。
MAIL_PASS
默认值:无
用于SMTP身份验证的密码以及MAIL_USER。
MAIL_TLS
默认值:False
执行使用STARTTLS。 STARTTLS是采取现有不安全连接的方式,并使用SSL / TLS将其升级到安全连接。
MAIL_SSL
默认值:False
使用SSL加密连接强制连接