雖然 Python 通過 smtplib 庫(kù)使得發(fā)送 email 變得很簡(jiǎn)單,Scrapy 仍然提供了自己的實(shí)現(xiàn)。 該功能十分易用,同時(shí)由于采用了 Twisted 非阻塞式(non-blocking)IO,其避免了對(duì)爬蟲的非阻塞式 IO 的影響。 另外,其也提供了簡(jiǎn)單的 API 來發(fā)送附件。 通過一些 settings 設(shè)置,您可以很簡(jiǎn)單的進(jìn)行配置。
有兩種方法可以創(chuàng)建郵件發(fā)送器(mail sender)。您可以通過標(biāo)準(zhǔn)構(gòu)造器(constructor)創(chuàng)建:
from scrapy.mail import MailSender
mailer = MailSender()
或者您可以傳遞一個(gè) Scrapy 設(shè)置對(duì)象,其會(huì)參考 settings:
mailer = MailSender.from_settings(settings)
這是如何來發(fā)送郵件了(不包括附件):
mailer.send(to=["someone@example.com"], subject="Some subject", body="Some body", cc=["another@example.com"])
在 Scrapy 中發(fā)送 email 推薦使用 MailSender。其同框架中其他的部分一樣,使用了 Twisted 非阻塞式(non-blocking)IO。
參數(shù):
使用 Scrapy 設(shè)置對(duì)象來初始化對(duì)象。其會(huì)參考這些 Scrapy 設(shè)置。
參數(shù):
settings (scrapy.settings.Settings object) – the e-mail recipients
發(fā)送 email 到給定的接收者。
參數(shù):
這些設(shè)置定義了 MailSender 構(gòu)造器的默認(rèn)值。其使得在您不編寫任何一行代碼的情況下,為您的項(xiàng)目配置實(shí)現(xiàn) email 通知的功能。
默認(rèn)值: 'scrapy@localhost'
用于發(fā)送 email 的地址(address)(填入 From:) 。
默認(rèn)值:'localhost'
發(fā)送 email 的 SMTP 主機(jī)(host)。
默認(rèn)值:25
發(fā)用郵件的 SMTP 端口。
默認(rèn)值:None
SMTP 用戶。如果未給定,則將不會(huì)進(jìn)行 SMTP 認(rèn)證(authentication)。
默認(rèn)值:None
用于 SMTP 認(rèn)證,與 MAIL_USER 配套的密碼。
默認(rèn)值:False
強(qiáng)制使用 STARTTLS。STARTTLS 能使得在已經(jīng)存在的不安全連接上,通過使用 SSL/TLS 來實(shí)現(xiàn)安全連接。
默認(rèn)值: False
強(qiáng)制使用 SSL 加密連接。