Java Extension Pack をインストール後 Java11 へパスを通しています
詳細に JSK の参照を設定するには、Java: Configure Java Runtime で設定画面を表示させます。 JavaMail JavaBeans Activation Framework Java11 で JavaMail を使用するには、JavaBeans Activation Framework を参照する必要があります。しかし Maven を使用すれば、使用する JDK を選択して JavaBeans Activation Framework なしで実行可能です。 Maven を使用する場合は、ダウンロードしてパスを通したうえに、JAVA_HOME に JDK のバスを設定する必要があります。🔻 Java: Configure Java Runtime
※ Getting Started with Java in VS Code 参考1) Visual Studio Code で Java + Maven 環境を設定してデバッグ実行する 参考2) VSCodeでMavenプロジェクトをデバッグする
import java.util.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; public class Main { // ******************************************* // エントリポイント // ******************************************* public static void main(String[] args) { new Main(); } // ******************************************* // コンストラクタ // ******************************************* public Main() { my_acton(); } // ******************************************* // 初期処理 // ******************************************* private void my_acton() { // 通常入力用 Scanner scan = new Scanner(System.in); // パスワード入力用 Console console = System.console(); MyTool out = new MyTool( ">>>" ); out.println("処理開始"); // アカウント入力 out.println("アカウントの入力"); String user = scan.nextLine(); if ( user.equals("") ) { out.println( "処理を途中で終了します" ); return; } out.println( user ); // パスワード入力 char[] pass = console.readPassword( "パスワードを入力してください : " ); String password = new String( pass ); // 宛先入力 out.println("宛先の入力"); String to = scan.nextLine(); out.println( to ); // ******************************************* // プロパティオブジェクトを作成 // プロパティオブジェクトは、 // extends Hashtable(連想配列) // ******************************************* Properties props = new Properties(); // ******************************************* // ( Gmail では、安全性の低いアプリのアクセスを有効にする必要があります ) // ▼ G Suite では、安全性の低いアプリのアクセスは使用できません // https://gsuiteupdates-ja.googleblog.com/2019/12/g-suite_24.html // ******************************************* props.put("mail.smtp.host","smtp.lolipop.jp"); // ロリポップ // props.put("mail.smtp.host","smtp.mail.yahoo.co.jp"); // Yahoo! // props.put("mail.smtp.host","smtp.gmail.com"); // Gmail props.put("mail.smtp.auth", "true" ); // SMTP 認証を行う // ▼ 465( SSL ) props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.socketFactory.fallback", "false"); props.put("mail.smtp.socketFactory.port", "465"); // ******************************************* // メール用のセッションを作成 // ******************************************* SimpleAuthenticator sa = new SimpleAuthenticator( user , password ); Session MailSession = Session.getInstance( props, sa ); try { // ******************************************* // メール用のメッセージオブジェクトを作成 // ******************************************* MimeMessage msg = new MimeMessage(MailSession); // ******************************************* // 宛先 // ******************************************* msg.setRecipients( Message.RecipientType.TO, String.format("%s <%s>", MimeUtility.encodeText( "あなた", "iso-2022-jp", "B" ), to ) ); // ******************************************* // 送信者 // ******************************************* msg.setFrom( new InternetAddress( String.format("%s <%s>", MimeUtility.encodeText( "わたし", "iso-2022-jp", "B" ), user ) ) ); // ******************************************* // 件名 // ******************************************* msg.setSubject( MimeUtility.encodeText( "日本語件名", "iso-2022-jp", "B" ) ); // ******************************************* // 本文 // ******************************************* msg.setContent( "本文\r\n本文", "text/plain; charset=\"iso-2022-jp\"" ); // ******************************************* // 送信 // ******************************************* Transport.send( msg ); } catch (Exception e) { out.println( e.getMessage() ); out.println("送信エラー"); } out.println("処理終了"); } // ******************************************* // 内部用クラス // ******************************************* private class MyTool { private String mark = null; MyTool(String pm) { mark = pm; } public void println(String str) { System.out.println( this.mark + str ); } } // *********************************************** // 認証用のプライベートクラス // *********************************************** private class SimpleAuthenticator extends Authenticator { private String user_string = null; private String pass_string = null; public SimpleAuthenticator( String user_s, String pass_s ) { super(); user_string = user_s; pass_string = pass_s; } protected PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication( this.user_string, this.pass_string ); } } }
JavaMail API documentation 安全性の低いアプリによる G Suite アカウントへの接続が無効に
|
【java : 通信関連の最新記事】
- Java : WEB上のテキストファイルを取得する
- Javamail で IMAP 受信
- OkHttp v3.8.0 jar( と okio 1.13.0.jar ) を Eclipse のプロジェクトに追加して一般的な POST 送信を行う
- java をコマンドプロンプトからビルドして実行するサンプル。( メール送信が初心者には楽しいはず )
- Eclipse + JFace : HttpURLConnection で GET
- javamail でメール送信と、付属のバッチビルド用のスクリプトの解説
- Java : バッチでテストする Twiiter API の『検索処理』
- google-gson(Java) を使って、JSON を 定義済みクラスのオブジェクトに一括変換する
- Java : RSS(Document) から、item の中の先頭の指定した要素の値を取得するクラス
- google-gson で、JSON 文字列の構成要素の一覧を取り出す処理
- java : Apache commons-net-3.0.1 を使ってごく自然に FTPS(セキュア) でファイルのアップロード/ダウンロード
- javamail 1.4.4 : IMAP で、ユーザから別のユーザへメッセージを全て(範囲指定で)コピーする
- javamail 1.4.4 : IMAP のメール受信イベントでメールを受け取ったら処理を行う
- Java : WEB 上の XML データの内容を取得する