Python3-python-sending-email
Python 3-SMTPを使用してメールを送信する
SMTP(Simple Mail Transfer Protocol)は、メールサーバー間の電子メールの送信とルーティングを処理するプロトコルです。
Pythonは smtplib モジュールを提供します。このモジュールは、SMTPまたはESMTPリスナーデーモンを備えた任意のインターネットマシンにメールを送信するために使用できるSMTPクライアントセッションオブジェクトを定義します。
これは、後で電子メールの送信に使用できる1つのSMTPオブジェクトを作成する簡単な構文です-
ここにパラメータの詳細があります-
- host -これは、SMTPサーバーを実行しているホストです。 ホストのIPアドレスまたはfinddevguides.comのようなドメイン名を指定できます。 これはオプションの引数です。
- port -_host_引数を指定する場合、SMTPサーバーがリッスンしているポートを指定する必要があります。 通常、このポートは25です。
- local_hostname -SMTPサーバーがローカルマシンで実行されている場合、_localhost_オプションのみを指定できます。
SMTPオブジェクトには、 sendmail と呼ばれるインスタンスメソッドがあります。これは、通常、メッセージのメール送信作業を行うために使用されます。 それは3つのパラメータを取ります-
- sender-送信者のアドレスを含む文字列。
- receivers-文字列のリスト、各受信者に1つ。
- message-さまざまなRFCで指定された形式の文字列としてのメッセージ。
例
Pythonスクリプトを使用して1つの電子メールを送信する簡単な方法を次に示します。 一度試してください-
ここでは、ヘッダーを正しくフォーマットするよう注意しながら、三重引用符を使用して基本的な電子メールをメッセージに配置しました。 電子メールには、 From 、 To 、および Subject ヘッダーが必要です。これらのヘッダーは、電子メールの本文から空白行で区切られています。
メールを送信するには、_smtpObj_を使用してローカルマシンのSMTPサーバーに接続します。 次に、_sendmail_メソッドをメッセージ、送信元アドレス、および宛先アドレスとともにパラメーターとして使用します(送信元アドレスと送信先アドレスは電子メール自体の中にありますが、これらは常にメールのルーティングに使用されるわけではありません)。
ローカルマシンでSMTPサーバーを実行していない場合は、_smtplib_クライアントを使用してリモートSMTPサーバーと通信できます。 ウェブメールサービス(GmailやYahoo!など)を使用していない場合 メール)、あなたの電子メールプロバイダーは、次のように、あなたがそれらを提供できる送信メールサーバーの詳細を提供している必要があります-
Pythonを使用してHTML電子メールを送信する
Pythonを使用してテキストメッセージを送信すると、すべてのコンテンツが単純なテキストとして扱われます。 テキストメッセージにHTMLタグを含めても、単純なテキストとして表示され、HTML構文に従ってHTMLタグはフォーマットされません。 ただし、Pythonには、HTMLメッセージを実際のHTMLメッセージとして送信するオプションがあります。
電子メールメッセージを送信するときに、MIMEバージョン、コンテンツタイプ、および文字セットを指定して、HTML電子メールを送信できます。
例
以下は、HTMLコンテンツを電子メールとして送信する例です。 一度試してください-
添付ファイルを電子メールとして送信する
混合コンテンツを含む電子メールを送信するには、 Content-type ヘッダーを multipart/mixed に設定する必要があります。 次に、テキストと添付セクションを boundaries 内で指定できます。
境界は2つのハイフンで始まり、その後に一意の番号が続きます。この番号は、電子メールのメッセージ部分には表示されません。 電子メールの最終セクションを示す最終境界も、2つのハイフンで終わる必要があります。
添付ファイルは、* pack( "m")*関数でエンコードしてから、送信前にBase 64エンコードにする必要があります。
例
以下は、ファイル /tmp/test.txt を添付ファイルとして送信する例です。 一度試してください-