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 データの内容を取得する


※ 



