「またまた私です。そしてまた、あなたにちょっとしたサプライズがあります。」

「今日はJava を使用して電子メールを送信する方法を教えます。 」

「良いニュースから始めましょう。Javaには電子メールを操作するためのネイティブ ライブラリがあります。

「悪いニュースは、このライブラリがJava SEではなくJava EEの一部であるということです。」

Java EEはJavaSEの拡張バージョンであり、より優れたアプリケーションに必要なクラスが含まれています。たとえば、電子メールを操作するためのアプリケーションです。」

「わかった、じゃあどうすればいいの?」

「そうですね、このライブラリをダウンロードするだけで十分です。」

「IntelliJ IDEA を賢く使用してください。」

「クラスを作成し、javax.mail.*ライブラリとjavax.mail.internet.*ライブラリを import セクションに追加します。

「次に、Alt+Enterを押して、IDEAにすべてを任せます。

「不足しているライブラリをダウンロードするオファーは次のようになります。」

メールを送信 - 1

「ダウンロード ウィンドウは次のようになります。」

メールを送信 - 2

「または、ここからダウンロードできます」

「ダウンロードしました。次は何ですか?」

「プロジェクト設定 (モジュール設定を開く) のライブラリ セクションに移動し、ダウンロードしたアーカイブから JAR ファイルを追加する必要があります。」

メールを送信 - 3

"終わり。"

「次の線は赤ではなくなっていますか?」

import javax.mail.internet.MimeMessage;
import javax.mail.internet.*;

「はい。」

「わかりました、それでは続けましょう。」

「メールを送るには3つのステップがあります。」

1) メールの送信に使用するメールサーバーとの接続を確立します。

2) 電子メールを作成し、必要に応じて添付ファイルを追加します。

3) メールを送信します。

「最初から始めましょう。」

「Java で電子メールを送信するには、まずメール サーバーとの接続を確立する必要があります。」

「サーバー上に電子メール アカウントをすでに持っていることが最善です。スパムを懸念して、最近のメール サーバーは匿名ユーザーからのメッセージを送信したくありません。

「javax.mail.Session.getDefaultInstance メソッドを 1 回呼び出すだけでサーバーに接続できます。」

メールサーバーとの接続を作成する
Properties props = new Properties();

// Here we need to load data into the props object

Session session = Session.getDefaultInstance(props);

「ただし、メールサーバーの設定をこのメソッドに渡す必要があります。」

たとえば、Mail.properties ファイルを作成し、次のような必要な設定を入力できます。

Mail.properties
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong

「最も重要なことはプロトコルとホストを指定することですが、メール サーバーの動作によっては追加の設定が必要になる場合があります。」

「このデータを Java コード内の Properties オブジェクトに追加するだけです。」

"例えば:"

メールサーバーとの接続を作成してください」
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", “smtp.gmail.com”);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.sendpartial", "true");

Session session = Session.getDefaultInstance(props);

「セッションが完了しました。電子メールを作成しましょう。」

「これは一見したよりも簡単に実行できます。例:」

メールメッセージを作成する
// Create a message
MimeMessage message = new MimeMessage(session);

// Set the message subject
message.setSubject("Test email!");

// Add the message text
message.setText("Asta la vista, baby!");

// Specify the recipient
message.addRecipient(Message.RecipientType.TO, new InternetAddress("stalone@gmail.com"));

// Specify the delivery date
message.setSentDate(new Date());

「宛先には任意のメールアドレスを指定できますか?」

「はい。さらに、送信者として任意のメールアドレスを指定することもできます。」

「わかりました! 検討させていただきます。」

「あとはこのメッセージを送信するだけです。」

「まず、サーバーにサインインして、メッセージを送信します。コードは 2 行だけです。」

メッセージを送ります
// Username and password for a Gmail account
String userLogin = “arnold@gmail.com”;
String userPassword = “strong”;

// Sign in on the server:
Transport transport = session.getTransport();
transport.connect("smtp.gmail.com", 465, userLogin, userPassword);

// Send a message:
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));

「面白そうですね!やってみますね。」

「添付ファイル付きのメッセージを送信する方法がわからない場合は、ここでそれについて読むことができます。」

メールの受信方法も知りたい方はこちらをご覧ください。

「なんてことだ。なんて便利なリンクなんだろう!」

「そうだ、今から自分の電子メールクライアントを作るつもりだ。クールだ!」

「ありがとう、エリー!」