電子メールの送信¶
Pythonは smtplib ライブラリを介して電子メールを比較的簡単に送信できますが、Scrapyは電子メールを送信するための独自の機能を提供します。これは非常に使いやすく、クローラーの非ブロッキングIOの干渉を避けるため、 Twisted non-blocking IO を使用して実装されています。また、添付ファイルを送信するためのシンプルなAPIを提供し、いくつかの 電子メール設定 で非常に簡単に構成(configure)できます。
簡単な例¶
メール送信者をインスタンス化するには2つの方法があります。あなたは標準コンストラクタを使用してインスタンス化できます:
from scrapy.mail import MailSender
mailer = MailSender()
または、 電子メール設定 を尊重するScrapy設定オブジェクトを渡してインスタンス化できます。
mailer = MailSender.from_settings(settings)
そして、以下を使用して(添付ファイルなしで)電子メールを送信する方法があります:
mailer.send(to=["someone@example.com"], subject="Some subject", body="Some body", cc=["another@example.com"])
MailSenderクラス・リファレンス¶
MailSenderは、フレームワークの残りの部分と同様に、 Twisted non-blocking IO を使用するため、Scrapyから電子メールを送信するために使用する優先クラスです。
-
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認証は実行されません。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)¶ 指定された受信者にメールを送信します。
- パラメータ
to (str or list of str) -- 電子メールの受信者
subject (str) -- 電子メールの件名
cc (str or list of str) -- カーボン・コピー(CC)への電子メール
body (str) -- 電子メール本文
attachs (iterable) -- タプル
(attach_name, mimetype, file_object)
の反復可能オブジェクト(iterable)。 ここで、attach_name
は、電子メールの添付ファイルに表示される名前の文字列で、mimetype
は添付ファイルのMIMEタイプであり、file_object
は添付ファイルの内容を含む読み取り可能なファイルオブジェクトですmimetype (str) -- 電子メールのMIMEタイプ
charset (str) -- 電子メールのコンテンツに使用する文字エンコード
メール設定¶
これらの設定は、 MailSender
クラスのデフォルトのコンストラクター値を定義し、コードを記述せずにプロジェクトで電子メール通知を構成(configure)するために使用できます( MailSender
を使用する拡張機能およびコード用))。