メールの作成とコンテンツの設定

新しいメールメッセージの作成

Aspose.Email for Java は、開発者が最初から MIME(Multipurpose Internet Mail Extensions)メッセージを作成できるようにします。この目的のための Aspose.Email for Java API の主なクラスは MailMessage クラスです。本トピックでは、Aspose.Email for Java を使用して EML、MSG、MTH ファイル形式のメールメッセージを作成する手順を説明します。

最初からメールメッセージを作成するには:

  1. MailMessage クラスのインスタンスを作成します。
  2. 以下を使用してメッセージの件名を設定します。 setSubject() メソッド。
  3. 以下を使用してメッセージ本文を設定します。 setHtmlBody() メソッド。
  4. 以下を使用してメールの送信者を設定します。 setFrom() メソッド。
  5. 以下を使用して TO フィールドの受信者を設定します。 getTo().add() メソッド。
  6. 以下を使用して CC フィールドの受信者を設定します。 getCC().add() メソッド。
  7. 呼び出す Save() MSG、EML、MHT 形式でメッセージファイルをディスクに保存するメソッド。  

複数の受信者の指定

この MailMessage メールメッセージを表します。MailMessage クラスのインスタンスは、SMTP サーバーへ送信されるメールメッセージを構築するために使用されます。 SmtpClient クラスです。本トピックでは、複数のメールアドレスを指定する方法を示します。メールアドレスは MailMessage クラスを使用して指定できます。MailMessage クラスで使用されるメールアドレスは次のとおりです:

  • To - 受信者アドレスは ‘To’ フィールドで指定できます。‘To’ フィールドの受信者はメッセージの主な対象です。複数の受信者アドレスを指定できます。
  • Cc - CC は "carbon copy"(カーボンコピー)または "courtesy copy"(礼儀的コピー)を意味し、メールを閲覧する必要はあるが必ずしも対応を求められない受信者を追加できます。たとえばマネージャーやチームメンバーなどです。Aspose.Email では、コード内で CC アドレスを指定できます。これにより、特定のアドレスへの自動メールやすべてのメールを関係者にコピーできます。
  • Bcc - Bcc(ブラインド カーボン コピー)は、他の受信者に見えない受信者へメールを送信できる機能です。CC がメール情報に表示されるのに対し、Bcc は表示されません。隠された通知のために使用されます。 

メールメッセージで複数のメールアドレスを指定するには、次の手順に従います:

  1. MailMessage クラスのインスタンスを作成します。
  2. MailMessage インスタンスを使用して From と複数の To、Cc、Bcc アドレスを指定します。
  3. SmtpClient クラスのインスタンスを作成し、Send メソッドを使用してメールを送信します。

以下のコードサンプルは、複数の To、CC、BCC アドレスを指定する方法を示しています。

メールアドレスをフレンドリーネームに変更

以下のプログラミングサンプルは、メールメッセージでメールアドレスをフレンドリーネームに変更する方法を示します。フレンドリーネームとは、メールアドレスよりも人間にとって分かりやすい名前で、たとえば js346@domain.com の代わりに John Smith のように表記します。メールを送信する際、メールアドレスにフレンドリーネームを関連付けることができます。 MailMessage クラスコンストラクタです。

メールメッセージでメールアドレスをフレンドリーネームに変更するには、次の手順に従います:

  • MailMessage クラスのインスタンスを作成し、ToFrom フィールドにフレンドリーネーム付きのメールアドレスを指定します。
  • MailMessage インスタンスで MailMessage クラスのコンストラクタを呼び出し、フレンドリーネームと共に Cc および Bcc のメールアドレスを指定します。
  • SmtpClient クラスのインスタンスを作成し、Send メソッドを使用してメールを送信します。

以下のコードスニペットは、メールアドレスに対して名前を表示する方法を示します。

メール本文の設定

この MailMessage クラスはメールメッセージを表します。MailMessage クラスのインスタンスは、SMTP サーバーへ配送するためにメールメッセージを構築する際に使用されます。 SmtpClient クラスです。メール本文は MailMessage クラスを使用して指定できます。メール本文は以下を使用して指定できます。 setHtmlBody MailMessage のメソッドです。

に加えて HtmlBody、Aspose.Email にはメール本文に関連する別のメソッドがあります:

  • isBodyHtml:本文が HTML かプレーンテキストかをユーザーに示します。

本トピックでは、HTML 本文テキストの定義と代替テキストの設定方法を示します。

HTML 本文の設定

HtmlBody メッセージ本文の HTML コンテンツを指定するために使用されます。HtmlBody は タグで囲む必要があります。以下のコードスニペットは、HTML 本文の設定方法を示します。

代替テキストの設定

使用する AlternateView 異なる形式でメールメッセージのコピーを指定するためのクラスです。たとえば、HTML でメッセージを送信する場合、HTML を表示できないメールリーダーを使用する受信者のためにプレーンテキスト版も提供したくなることがあります。このクラスには 2 つのプロパティがあります。 LinkedResources および BaseUri、メールコンテンツ内の URL を解決するために使用されます。

  • LinkedResources は LinkedResources オブジェクトのコレクションです。レンダリング時に、メールコンテンツ内の URL はまず LinkedResources コレクション内の各オブジェクトの Content Link の URL と照合され、解決されます。
  • BaseUri はメールリーダーが本文内の相対 URL を解決するため、また LinkedResources コレクション内の相対 Content Link URL を解決するために使用されます。

以下のコードスニペットは、代替テキストを設定する方法を示します。

メール本文エンコーディングの指定

コンテンツタイプはメールのコンテンツ形式(文字セット)を定義します。たとえば、java.nio.Charset が提供する一般的な文字セットは次のとおりです:

  • US-ASCII - 7 ビット ASCII、別名 ISO646-US、Unicode 文字セットの基本ラテンブロック
  • ISO-8859-1 - ISO ラテン文字セット No.1、別名 ISO-LATIN-1
  • UTF-8 - 8 ビット UCS 変換形式
  • UTF-16BE - 16 ビット UCS 変換形式、ビッグエンディアンのバイト順
  • UTF-16LE - 16 ビット UCS 変換形式、リトルエンディアンのバイト順
  • UTF-16 - 16 ビット UCS 変換形式、バイト順はオプションのバイト順マークで識別されます。

Aspose.Email は、 BodyEncoding MailMessage クラスのプロパティでメール本文のエンコーディングを指定します。メールメッセージの本文をエンコードするには、以下の手順に従ってください:

  1. MailMessage クラスのインスタンスを作成します。
  2. MailMessage インスタンスで送信者、受信者、HTML 本文メールを指定します。
  3. BodyEncoding プロパティの値を指定します。
  4. インスタンスを作成します SmtpClient クラスで、Send メソッドを使用してメールを送信します。

MailMessage の機能

この MailMessage クラスはメールメッセージの内容を表します。MailMessage クラスのインスタンスは、SMTP サーバーへ配信するためのメールメッセージを構築する際に使用されます。 SmtpClient クラスです。本記事では、MailMessage クラスのユーティリティ機能を使用して以下のメール機能を制御する方法を示します:

  • 日時 - MailMessage クラスを使用して setDate メールの日時を設定するメソッドです。
  • メッセージ優先度 - MailPriority クラスはメール送信時の優先度レベルを指定します。低、標準、高のいずれかです。優先度は送信速度と配信に影響します。
  • メッセージ感度 - MailSensitivity クラスは感度の 5 つのレベルを指定します。
  • 配信通知 - 配信通知は、送信者にメールが受信者の受信トレイに配信されたことを知らせます。

デフォルトでは、日付はメッセージが送信された実際の日付で、時間は Outlook が表示する送信時刻です。ただし、実際のメール配信時間は SMTP サーバー自体がメールヘッダーに追加します。たとえば、以下は一般的なメールヘッダーで、Date フィールドは MailMessage.setDate を使用して設定されています。

以下のコードスニペットは、上記で説明した各機能の使用方法を示しています。

開封確認の要求

以下のプログラミングサンプルは、開封確認を要求する方法を示しています。MailMessage クラス DeliveryNotificationOptions 列挙型プロパティは次のことを説明します 配信通知オプション メールの場合。メール送信後に開封確認を要求するには、次の手順に従ってください:

  1. MailMessage クラスのインスタンスを作成します。
  2. MailMessage インスタンスでメールの送信者、受信者、HTML 本文を指定します。
  3. 他の MailMessage インスタンスで DeliveryNotificationOptions を指定します。
  4. SmtpClient クラスのインスタンスを作成し、Send メソッドを使用してメールを送信します。

開封確認の要求が常に受け入れられるとは限らない理由は次のとおりです:

  • メールクライアントがその機能を実装していない場合があります。
  • エンドユーザーはその機能をオフにしている可能性があります。
  • エンドユーザーは送信しないことを選択できる場合があります。

以下のコードスニペットは、開封確認を要求する方法を示します。

メールヘッダーの設定

メールヘッダーはインターネット標準を表し、RFC はインターネットメールメッセージに含まれるヘッダー項目を定義しています。メールヘッダーは以下を使用して指定できます: MailMessage クラスです。共通のヘッダータイプは以下で定義されています: HeaderType クラスです。これはシールドされたクラスで、通常の列挙型のように機能します。

通常、メールヘッダーは以下のフィールドを含みます:

  • To: 受信者のアドレスは To フィールドで指定します。To フィールドの受信者がメッセージの主な対象です。複数の受信者アドレスを指定できます。
  • From: メッセージ送信者のメールアドレスを示すフィールドです。
  • Cc: メッセージを「カーボンコピー」または「礼儀的コピー」として送信できます。受信者は返信やアクションを求められません。通常、上司などが CC で通知されます。
  • Bcc: Blind Carbon Copy(ブラインドカーボンコピー)の略で、受信者に他の受信者リストが見えない形でメッセージを送る方法です。隠し通知のために使用されます。
  • ReplyTo: 送信者が返信を受け取りたい宛先を示すヘッダーです。
  • Subject: タイトル、見出し、件名。返信やコメントメッセージのスレッド指標としてよく使用されます。
  • Date: このヘッダーは日付(時間)を指定します。通常、メッセージが作成・送信された日時です。
  • XMailer: 発信者のクライアントソフトウェアに関する情報です。例: X-Mailer: Aspose.Email XMailer はメールクライアントで使用されます。メールクライアントによって XMailer の値は異なります。MS Outlook の XMailer の値は Microsoft Office Outlook, Build 11.0.5510 です。受信側のメール受信ソフトやリーダーでは無視されます。

通常、メールヘッダーは次のようになります:


 Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

メールヘッダーをカスタマイズするには、次の手順に従ってください:

  • インスタンスを作成します MailMessage クラス。
  • MailMessage クラスのインスタンスを使用して、To、From、CC、Bcc、ReplyTo、Subject、Date、XMailer を指定します。
  • インスタンスを作成します MimeHeader クラスでシークレットヘッダーを指定します。
  • シークレットヘッダーを MailMessage インスタンスに追加します。

以下のコードでは、メールヘッダーをカスタマイズしました。

上記のコードスニペットは、以下の形式のメールヘッダーを生成します。これは Microsoft Outlook で MsgHeaders.msg ファイルを開き、プロパティを表示することで確認できます。


 Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

特定の位置にヘッダーを挿入

この Add HeadersCollection のメソッドはヘッダーをコレクションの末尾に挿入します。ただし、特定の位置にヘッダーを挿入する必要がある場合があります。その際、Add メソッドは役に立ちません。これを実現するには、以下を使用します: Insert HeadersCollection のメソッドです。同名のヘッダーがコレクションにある場合、このヘッダーは同名の他のヘッダーの前に挿入されます。以下は Insert メソッドのシグネチャと使用例のコードです。


 Method Signature

HeaderCollection.insert(String name, String value)

メールへのカスタムヘッダー追加

以下のプログラミングサンプルは、メールメッセージでカスタムヘッダーを指定する方法を示します。メールヘッダーは MailMessage クラスを使用して指定できます。メールメッセージでカスタムヘッダーを指定するには、次の手順に従ってください:

  1. MailMessage クラスのインスタンスを作成します。
  2. MailMessage インスタンスを使用して、To、From、Subject の値を指定します。
  3. シークレットヘッダーを MailMessage インスタンスに追加します。
  4. SmtpClient クラスのインスタンスを作成し、Send メソッドを使用してメールを送信します。

以下のコードスニペットは、メールにカスタムヘッダーを追加する方法を示しています。

DKIM でメールに署名

Aspose.Email は DKIM(DomainKeys Identified Mail)でメールに署名することを可能にします。これにより、組織は送信中のメッセージに対して責任を負うことができます(DKIM について)。DKIM は受信者が検証できるデジタル署名をメールヘッダーに追加します。送信者の公開鍵により、受信者は署名がメッセージ内容と一致するかを検証できます。MailMessage クラス dKIMSign このメソッドはメッセージに署名するための暗号化および署名情報を設定するために使用されます。以下のコードスニペットは DKIM でメールに署名する方法を示しています。

メールマージの実行

メールマージは、類似したメールメッセージのバッチを作成・送信するのに役立ちます。メールの基本部分は同じですが、内容は個別化できます。通常、受信者の連絡先情報(名、姓、会社など)を使用してメールをパーソナライズします。

|todo:image_alt_text| | :- | |図: メールマージの動作イラスト|

Aspose.Email でメールマージを実行するには、次の手順を実行します:

  1. 名前 signature の関数を作成します
  2. インスタンスを作成します MailMessage クラス。
  3. 送信者、受信者、件名、本文を指定します。
  4. メールの末尾用の署名を作成します。
  5. インスタンスを作成します TemplateRoutine クラスに渡します MailMessage インスタンス。
  6. 署名を取得します: TemplateRoutine インスタンス。
  7. インスタンスを作成します DataTable クラス。
  8. DataTable クラスに Receipt、FirstName、LastName の列をデータソースとして追加します
  9. インスタンスを作成します DataRow クラス
  10. DataRow オブジェクトで受領アドレス、名、姓を指定します
  11. インスタンスを作成します MailMessageCollection クラス
  12. 指定してください: TemplateRoutine および DataTable インスタンスを MailMessageCollection インスタンス。
  13. インスタンスを作成します SmtpClient クラスを使用し、サーバー、ポート、ユーザー名、パスワードを指定します
  14. 以下を使用してメールを送信します: SmtpClient BulkSendAsync クラス メソッド

以下のコードは、3 人から 1 人へメールを送信します。