SMTP を使用したメール送信とメッセージ転送

この SmtpClient .NET を介した Python 用 Aspose.Email のクラスは、シンプルメール転送プロトコル (SMTP) を使用したメール送信のための堅牢で柔軟なインターフェイスを提供します。アプリケーション内でメールメッセージを配信したい開発者にとっての主要なエントリーポイントです。

主な機能: SmtpClient クラスのインクルード:

  • SMTP メール配信: SMTP サーバーを介してメールを直接送信できるようにします。

  • 代替配信オプション: メッセージをファイルシステムに保存したり、メッセージキューに書き込むなど、追加の配信方法をサポートします。

  • 同期および非同期操作:

    • 同期モード: Send メソッドを使用して、メールが完全に送信されるまで現在のスレッドをブロックします。

    • 非同期モード: SendAsync メソッドを使用してバックグラウンドでメッセージを送信し、アプリケーションが応答性を保ちます。

  • TNEF サポート: Microsoft Outlook 機能との互換性のために、Transport Neutral Encapsulation Format(TNEF)でメッセージを送信できるようにします。

この記事では、利用可能な主要な機能すべてをカバーしています SmtpClient このクラスは、設定と配信を完全に制御した上で、標準的および高度なメールメッセージを送信する方法を示します。

メールを同期的に送信

この SmtpClient.send このメソッドはメールメッセージを同期的に送信できます。アプリケーションが続行前に配信の確認が必要な場合に有用です。

Aspose.Email for Python via .NET を使ってプレーンテキストメールを同期的に送信するには、以下の手順とコードサンプルを使用します:

  1. 作成する MailMessage インスタンスを作成し、送信者、受信者、件名、本文を設定します。
  2. 設定する SmtpClient サーバーのホスト、ポート、ユーザー名、パスワードを指定します。
  3. 呼び出す send 上のメソッド SmtpClient インスタンスを作成し、そこに MailMessage オブジェクト。
# Create email
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1")) 

# Configure SmtpClient object
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO 

# Send email
client.send(eml)

SMTP を使った事前作成 EML ファイルの送信

すでに作成され EML 形式で保存されたメールメッセージを送信する必要がある場合、.NET 経由の Python 用 Aspose.Email を使用してプログラム的にロードおよび送信できます。

以下のコードスニペットと手順は、を使用して EML ファイルを送信する方法を示します SmtpClient:

  1. 以下を使用して EML ファイルをロードします MailMessage.load メソッド。
  2. のインスタンスを作成して構成します SmtpClient、SMTP サーバーのホスト、ユーザー名、パスワードを認証情報として提供します。
  3. 呼び出す send 上のメソッド SmtpClient インスタンスを作成し、読み込んだメッセージを渡します。
import aspose.email as ae

message = ae.MailMessage.load("test.eml")

# Send this message using SmtpClient
client = ae.clients.SmtpClient("host", "username", "password")
client.send(message)

プレーンテキストメールの送信

Aspose.Email でメッセージ本文を単純なテキストとして指定することで、プレーンテキストメールを送信できます。 MailMessage.body プロパティはコンテンツを定義するために使用され、 SmtpClient クラスは送信プロセスを処理します。

以下のコードスニペットと手順は、プレーンテキストのメールを送信する方法を示します:

  1. インスタンスを作成します MailMessage クラス。
  2. 送信者と受信者のメールアドレスを設定します。
  3. プレーンテキストの内容を body プロパティに割り当てます。
  4. インスタンスを作成します SmtpClient サーバーの詳細と認証情報を持つクラス。
  5. 次を使用してメールを送信します: send メソッド。

HTML メールの送信

.NET 経由の Python 用 Aspose.Email を使用すると、HTML 形式の本文でメールを送信できます。 MailMessage クラスです。HTML コンテンツを以下に割り当てることで html_body プロパティと設定 is_body_html True に設定すると、リッチでスタイルされたメッセージを作成できます。

以下のコードサンプルと手順は、HTML メールを送信する方法を示します:

  1. インスタンスを作成します MailMessage クラス。
  2. 送信者と受信者のメールアドレスを設定します。
  3. 設定 is_body_html = True HTML フォーマットであることを示すために
  4. HTML コンテンツを以下に割り当てます html_body プロパティです。
  5. 作成して構成します SmtpClient インスタンス。
  6. 使用する send メッセージを送信するメソッドです。

注: この例は基本的な HTML を使用していますが、より複雑な HTML 構造を組み込んでレスポンシブでブランド化されたメールレイアウトを作成できます。

プレーンテキスト代替付き HTML メールの送信

HTML メールを送信する際、HTML に対応していないメールクライアント向けにプレーンテキスト版を含めることがベストプラクティスです。.NET 経由の Python 用 Aspose.Email は、 AlternateView クラスは、単一のメッセージに HTML とプレーンテキストの両方のコンテンツを含め、互換性とユーザー体験を向上させます。

以下のコードサンプルと手順は、代替テキストコンテンツを持つメールの送信方法を示します:

  1. インスタンスを作成します MailMessage クラス。
  2. 送信者と受信者のメールアドレスを設定します。
  3. HTML コンテンツを以下に割り当てます html_body プロパティを設定し is_body_html = True.
  4. を使用してプレーンテキストの AlternateView を作成します create_alternate_view_from_string.
  5. 代替ビューを以下に追加します alternate_views のコレクション MailMessage.
  6. 作成して構成します SmtpClient インスタンス。
  7. 次を使用してメールを送信します: send メソッド。

大量メールの送信方法

一括メール送信は、複数のメッセージを同時に配信することを意味し、各メッセージは異なる受信者に宛てられることがあります。Aspose.Email は、 SmtpClient クラス。

以下のコードサンプルは、バッチでメールを一括送信する方法を示します:

  1. インスタンスを作成します SmtpClient クラスを作成し、ホスト、ポート、資格情報、およびセキュリティ設定を構成します。
  2. 複数の MailMessage インスタンス — 各インスタンスは個別のメールメッセージを表します。
  3. 各メールの送信者、受信者、件名、本文を指定します。
  4. すべて追加 MailMessage オブジェクトを MailMessageCollection.
  5. 呼び出す send メソッド( SmtpClient クラスで、 MailMessageCollection を引数として。
import aspose.email as ae
from aspose.email.clients import SmtpClient, SecurityOptions
from aspose.email import MailMessage, MailMessageCollection

# Create individual email messages
message1 = MailMessage("from@gmail.com", "to1@gmail.com", "Bulk Email - Message 1", "Hello, this is message 1.")
message2 = MailMessage("from@gmail.com", "to2@gmail.com", "Bulk Email - Message 2", "Hello, this is message 2.")
message3 = MailMessage("from@gmail.com", "to3@gmail.com", "Bulk Email - Message 3", "Hello, this is message 3.")

# Add messages to a collection
many_messages = MailMessageCollection()
many_messages.append(message1)
many_messages.append(message2)
many_messages.append(message3)

# Configure SMTP client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send all messages in bulk
client.send(many_messages)

マルチ接続サポートでメールを送信

.NET 経由の Python 用 Aspose.Email は、メール送信時に複数の同時接続を使用できます。 SmtpClient クラスです。この機能は、複数の接続にワークロードを分散させることで、大量メール送信時のパフォーマンス最適化に役立ちます。ただし、マルチ接続モードの有効化がすべてのシナリオで性能向上を保証するわけではなく、サーバー構成やネットワーク状況に依存します。

主要プロパティ:

  • use_multi_connection: SMTP クライアントのマルチ接続モードを有効または無効にします。

  • connections_quantity: マルチ接続モードが有効なときに開く接続数を指定します。

以下のコードサンプルは、マルチ接続モードを有効にする方法を示します:

  1. のインスタンスを作成して構成します SmtpClient.
  2. ホスト、ポート、ユーザー名、パスワード、暗号化などのサーバー詳細を設定します。
  3. 設定によりマルチ接続モードを有効にします use_multi_connection.
  4. 接続数を次のように指定します connections_quantity.
import aspose.email as ae

client = ae.clients.smtp.SmtpClient
client.host = "<HOST>"
client.username = "<USERNAME>"
client.password = "<PASSWORD>"
client.port = 587
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT

client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
client.send(messages)

TNEF 形式メールの送信

Transport Neutral Encapsulation Format (TNEF) は、Microsoft Outlook と Exchange がリッチな書式、埋め込みオブジェクト、投票ボタンなどの特殊機能を保持するために使用する独自のメール形式です。標準のメールクライアントは、通常の MIME ベースのメッセージではこの書式を保持できない場合があります。

.NET 経由の Python 用 Aspose.Email は、TNEF 形式でメールを送信することをサポートし、すべての高度な書式設定や機能が保持されます。これは、 use_tnef プロパティ( SmtpClient クラス。

以下のコードサンプルと手順は、TNEF メールを送信する方法を示します:

  1. 既存の EML メッセージをロードするか、以下を使用して作成します MailMessage クラス。
  2. 送信者および受信者のアドレスを設定します。
  3. 設定により TNEF フォーマットを有効にします use_tnef = True 上の SmtpClient インスタンス。
  4. 以下を使用してメッセージを送信します send() メソッド。

メールで会議リクエストを送信

Microsoft Outlook や IBM Lotus Notes などのカレンダー対応メールクライアントは、受信トレイから直接予定を管理できます。ユーザーが会議招待を受け取ると、メールクライアント内で承諾または辞退できます。.NET 経由の Python 用 Aspose.Email を使用すると、開発者は iCalendar (RFC 2445) 標準に準拠した会議招待をプログラムで作成・送信できます。

メールで会議招待を送信する方法

Aspose.Email は、メールの一部として iCalendar 会議リクエストを作成・送信する組み込みサポートを提供します。これらのリクエストは、一般的なカレンダークライアントと互換性があり、受信者は招待に簡単に応答できます。

|メールで送信された iCalendar 会議リクエスト| | :- | |todo:image_alt_text|

以下のコードスニペットは、メールでリクエストを送信する方法を示しています:

  1. 作成する MailMessage インスタンス。
  2. 送信者と受信者のメールアドレスを指定します。
  3. 作成します Appointment 場所、開始/終了時間、送信者、受信者を含むオブジェクトです。
  4. 予定の要約と説明を設定します。
  5. 以下を使用してメールに予定を添付します add_alternate_view().
  6. 次を使用してメールを送信します: SmtpClient.

IBM Lotus Notes の iCalendar サポート

Aspose.Email は iCalendar 形式 (RFC 2445) を使用し、会議リクエストが Microsoft Outlook、IBM Lotus Notes、その他標準対応クライアントと互換性があることを保証します。受信者のプラットフォームに関係なく同じ手順を使用できます。

SMTP クライアントでメールを転送

メールの転送は、受信したメッセージを他者と共有する際に一般的に行われます。.NET 経由の Python 用 Aspose.Email は、 SmtpClient クラスです。forward メソッドを使用すると、元の送信者を介さずに保存済みまたは受信したメールメッセージを新しい受信者に転送できます。

以下のコードサンプルは、 MailMessage クラス:

MailMessage にロードせずに EML ファイルを転送

Aspose.Email は、.eml ファイルを最初に MailMessage オブジェクトです。システムのメモリ使用量を最小限に抑える必要があるシナリオで特に有用です。

以下のコードサンプルは、EML ファイルを直接転送する方法を示します:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient(host, smtp_port, username, password, ae.clients.SecurityOptions.AUTO)
file = open("test.eml", "rb")
client.forward(sender, recipients, file)