お気に入り | 日本語 | ログイン

Mail Java API 概要

App Engine アプリケーションは、アプリケーションの管理者、および Google アカウントを持つユーザーに代わってメール メッセージを送信できます。メール メッセージの送信に、アプリケーションはメール サービスを使用します。

JavaMail API でのメールの送信

メール サービスの Java API は、メールのメッセージ送信に JavaMailjavax.mail)インターフェースを使用します。

JavaMail セッションの作成の際に、SMTP サーバー設定を指定する必要はありません。App Engine はメッセージ送信には常にメール サービスを使用します。

import java.util.Properties;
import javax.mail.AddressException;
import javax.mail.InternetAddress;
import javax.mail.MessagingException;
import javax.mail.MimeMessage;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;

// ...
        Properties props = new Properties();
        Session session = Session.getDefaultInstance(props, null);

        String msgBody = "...";

        try {
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress("admin@example.com"));
            msg.addRecipient(Message.RecipientType.TO,
                             new InternetAddress("user@example.com", "Mr. User"));
            msg.setSubject("Your Example.com account has been activated");
            msg.setText(msgBody);
            Transport.send(msg);
    
        } catch (AddressException e) {
            // ...
        } catch (MessagingException e) {
            // ...
        }

メール メッセージ

メール サービスは、1 つ以上の宛先にメール メッセージを送信できます。メッセージには題名、テキスト形式の本文と、オプションで HTML 形式の本文を含めることができます。ファイルを添付することもできます。

セキュリティ上の理由から、メッセージ送信者のアドレスはアプリケーション管理者のメール アドレス、またはログイン中のユーザーの Google アカウントのメール アドレスとなります。メール アドレスには「返信先」アドレスを含めることができます。「返信先」アドレスは次の条件に従う必要があります。

アプリケーションに代わってメールを送信するケースで、1 人の管理者の個人 Google アカウントを送信者として使用したくない場合、有効なメール アドレスを使用してアプリケーション用に新しい Google アカウントを作成し、管理者の新しいアカウントとしてアプリケーションに追加できます。管理者としてアカウントを追加するには、管理コンソールの「デベロッパー」セクションをご覧ください。

受信者のメール アドレスにはどのようなアドレスも使用できます。受信者はメッセージの「宛先」フィールドまたは「Cc」フィールドで指定します。または、メッセージのヘッダーから隠すことができます(「blind carbon copy」または「Bcc」)。

添付ファイル

メール メッセージには複数または単体のファイルを添付できます。

添付ファイルにはファイル名とファイル データがあります。ファイル データは、アプリケーションのデータ ファイルやデータストアなど、どのソースからのデータも使用できます。添付ファイルの MIME タイプはファイル名に基づき決定します。

セキュリティ上の目的から、メール メッセージに添付されるファイルは許可されたファイル形式である必要があり、ファイル名はこの形式に対応する拡張子で終わる必要があります。

メール メッセージにファイル添付できる MIME タイプと対応するファイル名の拡張子のリストを次に示します。

MIME タイプファイル名の拡張子
image/x-ms-bmpbmp
text/csscss
text/comma-separated-valuescsv
image/gifgif
text/htmlhtm html
image/jpegjpeg jpg jpe
application/pdfpdf
image/pngpng
application/rss+xmlrss
text/plaintext txt asc diff pot
image/tifftiff tif
image/vnd.wap.wbmpwbmp
text/calendarics
text/x-vcardvcf

メール送信

アプリケーションがメール サービスを呼び出してメッセージを送信する場合、メッセージはキューに格納され戻り値がすぐに返されます。メール サービスは各受信者のメール サーバーへのアクセス、メッセージの配信、メール サーバーにアクセスできない場合の再試行に標準的な手順を使用します。

メール サービスがメッセージを配信できない場合、または受信者のメール サーバーが不着通知を送信する場合(システム内にそのアドレスのアカウントが存在しない場合など)、エラー メッセージはメッセージ送信者のアドレスへメールで送られます。アプリケーション自身は、送信が成功したかどうかについてのどのような通知も受信しません。

メールと開発サーバー

開発サーバー上のアプリケーションがメール メッセージ送信にメール サービスをコールした場合、メッセージはログに記述されます。Java 開発サーバーはメール メッセージは送信しません。

割り当てと制限

それぞれのメール サービス リクエストは、Mail API コールの割り当てとして数えられます。

メール メッセージのそれぞれの受信者のメールアドレスは、メール受信者(調整可能)割り当てに数えられます。アプリケーションの管理者である各受信者もまたメールの送信先の管理者割り当てに数えられます。

メール メッセージの本文で送信されたデータは、次の割り当てに数えられます。

  • 送信帯域幅(調整可能)
  • 送信されたメッセージ本文のデータ

メール メッセージに添付されたそれぞれの添付ファイルは送信された添付ファイル割り当てに数えられます。

メール メッセージの添付ファイルとして送信されたデータは、次の割り当てに数えられます。

  • 送信帯域幅(調整可能)
  • 送信された添付ファイル データ

割り当ての詳細については、割り当て、および管理コンソールの「割り当て詳細」セクションをご覧ください。

割り当てに加え、メール サービスの使用には次の制限があります。

制限 制限値
添付ファイルを含めたメッセージの最大サイズ 1 MB
管理者が受信者の場合のメッセージの最大サイズ 16 KB