Python を使用して複数のアドレスにメールを送信する

Abid Ullah 2023年6月21日
  1. Python を使用して複数のアドレスにメールを送信する
  2. Python の smtplib モジュール
  3. Python で smtplib を使用してメールを送信する
  4. 安全性の低いアプリへのアクセスを制御する
  5. Python で smtplib を使用してメールを送信する
Python を使用して複数のアドレスにメールを送信する

この記事では、Python プログラミング言語を使用して、さまざまな電子メール アドレスを使用してさまざまな受信者に電子メールを送信する方法を示します。 具体的には、さまざまな人にメールを送信します。

Python を使用して複数のアドレスにメールを送信する

Python は、ウェブサイトを構築したり、人工知能を操作したりするための単なるプログラミング言語ではありません。

バックエンド、フロントエンド、または Web アプリケーションのスタック全体で使用できる言語です。 したがって、その汎用性により、便利なツールになります。

Python は、電子メールの自動化にも使用できる言語に進化しました。 電子メールに関連するタスクは、Python を使用して簡単に自動化できます。

Python を使用して複数の異なる受信者に同時にメールを送信するには、数行のコードが必要です。

この Python の記事では、Python を使用して複数の受信者に同時にメールを送信する方法を示します。

特に smtplib などのモジュールを使用する場合は、Python を使用してメールを送信することはそれほど難しくありません。 このライブラリは、メール サーバーに接続してメッセージを配信するために必要なすべての処理を行います。

さまざまなアドレスに電子メールを送信できるように、Python スクリプトを構成する手順を順を追って説明します。 さらに、開始時に使用できるサンプルコードもいくつか含まれています。

smtplib を利用したい場合は、まずサーバーへの接続を確立する必要があります。 ファイルにアクセスするには、サーバーの場所とログインとパスワードを提供する必要があります。

接続が確立されたら、相互にメッセージの送信を開始できます。

メッセージを送信するには、まずメッセージ オブジェクトを作成し、次に fromto、およびトピック フィールドのヘッダーを指定する必要があります。 cc および bcc 受信者を追加することもできます。

メッセージが作成された後、テキスト、HTML、または添付ファイルを追加するオプションが表示されます。

メッセージを送信する準備ができたら、smtplib モジュールに含まれている sendmail() 関数を使用できます。 この手法では、受信者のリストが必要であり、リスト上の各個人と通信します。

それでは、smtplib から始めましょう。

Python の smtplib モジュール

smtplib は Python の組み込みモジュールです。 クライアント セッション オブジェクトがあります。

smtplib は、SMTP クライアント セッション オブジェクトを定義します。 このオブジェクトは、SMTP または ESMTP リスナー デーモンを実行している、インターネットに接続された任意のコンピューターに電子メールを配信するために使用できます。

アプリケーション プログラマーは、このモジュールを自分の作業で直接使用することは想定されていません。 システム管理のアクティビティを自動化するスクリプトを作成しているシステム管理者は、このリソースにアクセスできると便利です。

smtplib モジュール クラス

smtplib モジュールは以下のクラスを定義します:

  1. SMTP - SMTP クライアント セッション オブジェクト
  2. SMTP_SSL - SSL 接続を介した SMTP クライアント セッション
  3. IMAP4 - IMAP4 クライアント セッション オブジェクト
  4. POP3 - POP3 クライアント セッション オブジェクト

これらのクラスはすべて同じメソッドと属性を持っています。

smtplib モジュールの例外

smtplib モジュールでは、次の例外も定義されています。

  1. SMTPException - すべての SMTP 関連の例外の基本クラス。
  2. SMTPServerDisconnected - SMTP サーバーが予期せず切断されました。
  3. SMTPResponseException - SMTP サーバーが 2xx 以外のエラー コードを返しました。
  4. SMTPSenderRefused - SMTP サーバーが送信者のアドレスの受け入れを拒否しました。
  5. SMTPRecipientsRefused - SMTP サーバーがすべての受信者アドレスの受け入れを拒否しました。
  6. SMTPDataError - SMTP サーバーがメッセージ データを受け入れません。
  7. SMTPConnectError - SMTP サーバーに接続できませんでした。
  8. SMTPHeloError - SMTP サーバーが HELO コマンドに適切に応答しませんでした。
  9. SMTPNotSupportedError - SMTP サーバーは要求された機能をサポートしていません。
  10. SMTPAuthenticationError - SMTP サーバーがユーザー名/パスワードを受け入れませんでした。

Python を使用してメールを送信するというメイン トピックに移りましょう。

Python で smtplib を使用してメールを送信する

Google が安全性の低いアプリによる Gmail アカウントへのアクセスを取り締まっていることは周知の事実です。 これは、多くのユーザー、特に Python を使用して Gmail アカウントからメールを送信するユーザーにとって大きな不満の原因となっています。

残念ながら、Google は安全性の低いアプリによる Gmail アカウントへのアクセスを許可しなくなりました。 Python の smtplib モジュールを使用して Gmail アカウント経由でメールを送信する場合は、アカウントが安全であることを確認するためにいくつかの追加手順を実行する必要があります。

そのため、まず安全性の低いアプリへのアクセスを制御します。

安全性の低いアプリへのアクセスを制御する

ご存知かもしれませんが、Google は安全性の低いアプリとして知られる機能のサポート提供を停止しました。 この機能により、Microsoft Outlook、Thunderbird、Apple Mail などのプログラムを使用して Gmail アカウントにアクセスできました。

これは苦痛に聞こえるかもしれません。 しかし、それは良いことです! 安全性の低いアプリ は重大なセキュリティ リスクであり、Google がサポートを終了することで、アカウントを安全に保つことができます。

私たちの場合と同様に、Python の smtplib が Gmail にアクセスできるようにしたいのですが、心配はいりません! Gmail アカウントのパスワードを入力する必要はありません。

次の簡単な手順に従うことで、安全に切り替えることができます。

  • 安全な接続を使用する

    Gmail アカウントからメールを送信するときは、常に安全な接続を使用してください。 Gmail は、SSL と TLS の 2 種類の接続を提供します。

    SSL (Secure Sockets Layer) は 2つのプロトコルのうち古い方であり、TLS ほど安全ではありません。 ただし、暗号化されていない接続よりも安全です。

    TLS (Transport Layer Security) は、SSL よりも新しく、より安全なプロトコルです。 TLS が利用可能な場合、Gmail は自動的に TLS を使用します。

  • Gmail アカウントにログイン

    Python モジュール smtplib を使用して電子メールを送信する前に、まずアカウントにログインする必要があります。これは、Gmail アカウントから生成された電子メールとパスワードが必要だからです。

  • アカウントの管理

    アカウントにログインしたら、Gmail プロファイルのアイコンをクリックする必要があります。 [Manage your Google Account] のドロップダウンとオプションが表示されます。

    次のステップに進むには、それをクリックする必要があります。

  • 安全

    [Google アカウントの管理] をクリックすると、次のページにリダイレクトされ、セキュリティ オプションが表示されます。 それをクリックする必要があります。

  • Google へのログイン

    セキュリティ をクリックすると、Gmail の別の部分にリダイレクトされ、Google へのサインイン オプションが表示されます。

    下の画像は、Google へのサインインに 2つのオプションがあることを示しています。

    1. 2段階認証

    2.アプリパスワード

    Google への署名

  • 2 段階認証 を有効にする

    もう 1つの重要なセキュリティ対策は、Gmail アカウントで 2 要素認証を有効にすることです。 2 要素認証は、携帯電話からのコードとパスワードの入力を要求することで、セキュリティをさらに強化します。

    まず、2 段階認証 をオンにする必要があります。 これはとても簡単です。 数秒でできます。

  • アプリ パスワード

    2 段階認証が完了したら、App Passwords を使用して、Gmail アカウントからパスワードを生成する必要があります。

    それをクリックすると、以下のページにリダイレクトされます。

    アプリ パスワード

Select AppSelect Device のオプションを確認する必要があります。

パスワードの生成

私たちの場合、メールWindows コンピューターまたはその他のデバイスを選択して、さらに移動してパスワードを取得します。 この後、生成ボタンをクリックします。

生成されたパスワード

生成ボタンをクリックすると、別のページにリダイレクトされ、Google がメール用のパスワードを生成したことがわかります。このパスワードは、Python のsmtplibを使用してメールを送信するときに使用できます。

これで、電子メールのパスワードを安全に生成できました。 Python に移行して、smtplib を使用してメールを送信できるようになりました。

Python で smtplib を使用してメールを送信する

smtplib モジュールを使用すると、Python を使用して簡単にメールを送信できます。 smtplib を使用してメールを送信するには、いくつかの手順を実行する必要があります。

まず、SMTP オブジェクトを作成する必要があります。 次に、connect() メソッドを使用してサーバーに接続する必要があります。

最後に、msg.set_content メソッドを使用してメールを送信できます。 コードのステップを深く掘り下げてみましょう。

  • ライブラリのインポート

    最初に smtplib をインポートします。 これがプロトコルであり、このプロトコルは電子メールの送信に役立ちます。

  • メールフォーマット

    Python でメール形式を使用するには、email.message import EmailMessage を使用します。 SubjectFromToSend のように。

  • 電子メールアドレス

    次に、電子メールアドレスを逆コンマで書きます。 メールの送信元のメール。

  • パスワード

    以前に Gmail で生成したパスワードを書き込みます。

  • Gmail データベースへのアクセス

    Gmail のデータベースにアクセスするには、smtplib.SMTP_SSL('smtp.gmail.com', 465) を使用します。 これにより、Gmail のデータベースに接続できます。

  • ログイン

    ここで、server.login コマンドを使用して、生成されたパスワードを使用して電子メールにログインします。

  • 送信

    v=server.send_message を使用して、電子メールでメッセージを送信します。

  • 印刷する

    メールが正常に送信されると、メールが正常に送信されましたという印刷されたメッセージが表示されます。

コード例:

import smtplib
from email.message import EmailMessage

EMAIL_ADDRESS = "iqraanwar097@gmail.com"
EMAIL_PASSWORD = "***************"
email = EmailMessage()
email["Subject"] = input(str("Email Subject: "))
email["From"] = "Your Name"
email["To"] = "abidork41@gmail.com"
email.set_content("Write Your message here")
server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
server.send_message(email)
server.quit()
print("Email has been sent successfully")

出力:

Email Subject: Email sent using python
Email has been sent successfully

これにより、1つのメール アドレスにメールを送信できます。 ただし、複数のアドレスに電子メールを送信する場合は、電子メールをコンマで区切り、必要な数のアドレスに電子メールを送信できます。

コード例:

import smtplib
from email.message import EmailMessage

EMAIL_ADDRESS = "abs@gmail.com"
EMAIL_PASSWORD = "*************"
email = EmailMessage()
email["Subject"] = input(str("Email Subject: "))
email["From"] = "Your Name"
email["To"] = "abidork41@gmail.com,abidork41@gmail.com,abidork41@gmail.com"
email.set_content("Write Your message here")
server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
server.send_message(email)
server.quit()
print("Email has been sent successfully to all the addresses")

出力:

Email Subject: I have a news for you all
Email has been sent successfully to all the addresses

私たちの電子メールは、記載されているすべてのアドレスに送信されます。

これで議論は終わりです! Python を使用して、一度に複数の人にメールをすばやく簡単に送信できます。これには、数行のコードしか必要ありません。

この記事が、Python を使用して複数のアドレスにメールを送信する方法を理解するのに役立つことを願っています。

著者: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

関連記事 - Python Email