「またまた私です。そしてまた、あなたにちょっとしたサプライズがあります。」
「今日はJava を使用して電子メールを送信する方法を教えます。 」
「良いニュースから始めましょう。Javaには電子メールを操作するためのネイティブ ライブラリがあります。」
「悪いニュースは、このライブラリがJava SEではなくJava EEの一部であるということです。」
「Java EEはJavaSEの拡張バージョンであり、より優れたアプリケーションに必要なクラスが含まれています。たとえば、電子メールを操作するためのアプリケーションです。」
「わかった、じゃあどうすればいいの?」
「そうですね、このライブラリをダウンロードするだけで十分です。」
「IntelliJ IDEA を賢く使用してください。」
「クラスを作成し、javax.mail.*ライブラリとjavax.mail.internet.*ライブラリを import セクションに追加します。
「次に、Alt+Enterを押して、IDEAにすべてを任せます。
「不足しているライブラリをダウンロードするオファーは次のようになります。」
「ダウンロード ウィンドウは次のようになります。」
「または、ここからダウンロードできます」
「ダウンロードしました。次は何ですか?」
「プロジェクト設定 (モジュール設定を開く) のライブラリ セクションに移動し、ダウンロードしたアーカイブから JAR ファイルを追加する必要があります。」
"終わり。"
「次の線は赤ではなくなっていますか?」
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.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));
「面白そうですね!やってみますね。」
「添付ファイル付きのメッセージを送信する方法がわからない場合は、ここでそれについて読むことができます。」
メールの受信方法も知りたい方はこちらをご覧ください。
「なんてことだ。なんて便利なリンクなんだろう!」
「そうだ、今から自分の電子メールクライアントを作るつもりだ。クールだ!」
「ありがとう、エリー!」
GO TO FULL VERSION