4月からの java の授業の開発環境は AndroidStudio がメインになりますが、コマンドプロンプトから地味に扱う方法や、Android では無いアプリの Eclipse での扱いも知って欲しいので昔のキットを引っ張り出して整備しています。 まずは、コマンドプロンプトから ※ 当然 JDK は必要です。あるという前提で。 ソース
import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class Main { // ********************** // エントリポイント // ********************** public static void main(String[] args) { Main thisClass = new Main(); } // ********************** // コンストラクタ // ********************** public Main() { super(); my_acton(); } // ********************** // 初期処理 // ********************** private void my_acton() { MyTool out = new MyTool(">>>"); out.println("処理開始"); // ********************** // プロパティオブジェクトを作成 // プロパティオブジェクトは、extends Hashtable(連想配列) // ********************** Properties props = new Properties(); // ********************** // * 連想配列に送信用サーバのアドレスをセット // ********************** // gmail の場合は、以下のリンクより、安全性の低いアプリの許可: 有効 に変更 // https://myaccount.google.com/security?pli=1#connectedapps // props.put("mail.smtp.host","smtp.gmail.com"); // 以下 Yahoo! props.put("mail.smtp.host","smtp.mail.yahoo.co.jp"); // props.put("mail.smtp.port","587"); // サブミッションポート props.put("mail.smtp.auth", "true" ); // SMTP 認証を行う 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("ユーザID","パスワード"); Session MailSession = Session.getInstance( props, sa ); try { // ********************** // メール用のメッセージオブジェクトを作成 // ********************** MimeMessage msg = new MimeMessage(MailSession); // ********************** // 宛先 // ********************** msg.setRecipients( Message.RecipientType.TO, "メールアドレス" ); // ********************** // 送信者 // ********************** msg.setFrom( new InternetAddress( "ユーザID@yahoo.co.jp", "私です", "ISO-2022-JP") ); // ********************** // 件名 // ********************** msg.setSubject( MimeUtility.encodeText( "日本語件名", "iso-2022-jp", "B" ) ); // ********************** // 本文 // ********************** msg.setContent( "本文\n本文", "text/plain; charset=\"iso-2022-jp\"" ); // ********************** // 送信 // ********************** Transport.send( msg ); } catch (Exception e) { out.println("送信エラー"); e.printStackTrace(); } out.println("処理終了"); } // ********************** // 内部用クラス // ********************** private class MyTool { private String mark = null; MyTool(String pm) { mark = pm; } public void println(String str) { StringBuilder sb = new StringBuilder(); sb.append(this.mark); sb.append(str); String s = sb.toString(); System.out.println( s ); } } // ************************** // 認証用のプライベートクラス // ************************** 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 ); } } }
Yahoo! メールと Gmail でテストしていますが、Gmail は 安全性の低いアプリの許可を『有効』にする必要があります。 mail.jar によるメールを送る為のビルド環境は同梱しています。java_build.wsf を実行していただくと、ビルド用のコマンドプロンプトが開きますが、前提として JDK の場所は指定していただく必要があります。 ▼ __buildPath.txtC:\Program Files\Java\jdk1.8.0_66\bin ; 行先頭にセミコロンはコメントです。 ; また、一つでも有効な行を発見したら、それを使用して次の行以降は読み込みません ; なにも無い行は無視します ; ; ※ いろいろなバージョンをこれで切り替えて処理しますバージョンを切り替えたい場合はいくつも書いて、必要の無い行の先頭に ;(セミコロン)を入れます。 CLASSPATH の指定方法として、既に mail.jar の指定がされているので適宜変更します。 ▼ __classPath.txt.;..\mail.jar ; 行先頭にセミコロンはコメントです。 ; また、一つでも有効な行を発見したら、それを使用して次の行以降は読み込みません ; なにも無い行は無視します ;..mail.jar になっているのは、__targetPath.txt の指定で、カレントが javamail フォルダになっており、そこからの相対位置になる必要があるからです。 実行 java_start.wsf を実行しますが、__java_start.txt の中に書いた内容が1行づつ実行されますjava Main pause exit※ その他は、readme.txt を参照して下さい
タグ:java
|
【java : 通信関連の最新記事】
- Java : WEB上のテキストファイルを取得する
- Java11 + Visual Studio Code + JavaMail( with JavaBeans Activation Framework )
- Javamail で IMAP 受信
- OkHttp v3.8.0 jar( と okio 1.13.0.jar ) を Eclipse のプロジェクトに追加して一般的な POST 送信を行う
- 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 データの内容を取得する