■■■■■■■■■■
操作性の良いソフト制作
を,目指しています

■■■■■■■■■■
群馬県太田市
ソフトウェア開発
Yamanaka
INDEX ページへ
Java メールチェッカー
JMailChecker

・ソフト名称: Java GUI メールチェッカー JMailChecker
・バージョン: 1.02
・用 途: メールの解析・削除
・開発環境: Eclipse Java/Swing
・外部ライブラリ JavaMail-v1.4.4 JavaBeans Activation Framework-v1.1.1
・動作に必要なもの: JRE5.0以上
・動作確認: Windows10, 7
・ソフト種別: フリーウェア

■ 設計:
このソフトは、メールの解析と削除を目的にしたものです、
表示するのは、テキスト文字列、メールソース、メールサーバーとのレスポンスなど、
メールに添付されたファイル等を生成する事はありません。
メールの保存管理は、他のソフトをご利用下さい。
本文データ取得方法:
1.まず、テキストの、text/plain text/html などがあれば取得します。
2.マルチパート式なら、ループしてデータを抽出します。
3.上記1.2.に該当しなければ、形式やファイル名のみを取得します。
	/*
	 * 本文の取り出し(テキスト文章それ以外は、タイプ名のみ)
	 * @param Partは、MessageおよびBodyPartの共通基本インタフェース
	 * @param bfText テキスト文章の入れ物
	 * @param bfMt   テキスト文章以外の、タイプ名やファイル名の入れ物
	 */
	private void MessageNest(Part part, StringBuffer bfText, StringBuffer bfMt) 
			throws IOException, MessagingException
	{
		Object objPart = part.getContent();
		
		if (objPart instanceof String)
		{
			//テキストデータ取得
			String sTxt = objPart.toString();

			//text/plen指定に意味の無い2バイト入れたのがあった[G銀行]ので、
			//100以下なら、再度データ(text/html)を取得する ※100は適当、
			//100より上なら取得したと判断、タイプを取得のみ ※通常text/html
			if(bfText.length() > 100)
			{
				bfMt.append(part.getContentType() + "\n");
			}
			//文字コードセット指定無しの、生JISメールの表示処理 2015 10/02 v1.02
			//text/plain Ascii文字列としてしか認識しない為、本来のJIS文字セットを指定する
			else if(sTxt.indexOf('\u001b') >= 0)//JIS検知
			{
				bfText.append(new String(sTxt.getBytes("ISO-2022-JP"), "ISO-2022-JP") + "\n");
			}
			else
			{
				bfText.append(sTxt + "\n");
			}
		}
		else if(part.isMimeType("multipart/*"))//マルチパート形式
		{
			//データをパート分抽出
			Multipart mp = (Multipart)objPart;
			int partsCount = mp.getCount();
			for (int i = 0; i < partsCount; i++) 
			{
				Part part2 = mp.getBodyPart(i);
				//合理的にネスト抽出する
				this.MessageNest(part2, bfText, bfMt);
      	
			}//for nest
		}
		else //上記に該当しないもの、形式やファイル名など
		{
			//テキスト以外の、タイプを取得。
			bfMt.append(part.getContentType() + "\n");
		}
            
	}

	
考察:
一般に使われているメールソフトは、テキスト形式の表示でも、URLには丁寧にハイパーリンクを付けていますが、
リンクに、あなたのメールアドレスのパラメータを付けられている場合、それをクリックしたことで情報を収集される可能性があります。
信用ある会社からのアンケートなどへのリンクの場合、
本人の情報を記入しなくとも良いので、便利と考えればそれまでですが、
リンクの上に説明をつけておくのが礼儀と思います。
メールソースを眺めると、まれにヘッダー部分が乱雑なものがあります、
プログラマーの性で、苦情を言ったりしますが、相手にしてくれません。
フリー配布について:
このソフトの原型は、特定(登録申請)のメールから取得した内容をデータベースに書き込む、業務利用ソフトです、
フリー配布に伴い、業務利用部分を省いてあります。
■ 操作手順:
1.自動か手動接続ボタンでメールサーバに接続し、メールボックスあるメールを表示します。
2.削除ボタンで、選択した不要なメールをメールサーバーから削除します。
(自動で取得した場合には自動切断されるので、再接続が必要)
3.切断ボタンで、切断して終了です。
4.切断後は、キャッシュされたメールの観覧が出来ます。
(受信メールは、削除に関係なく全てキャッシュされます)
表示について:
 メールソースの表示とは別に、差出人のメールアドレスや、Received: from の欄を常時表示しています、
 ここを見れば、どこから発信しているかや、発信元の偽装も判断出来ます。
 上記画像は、東京のプロバイダから発信されているのが分かります。
■ 解凍
JMailChecker [プログラム収納フォルダ]
 JMailChecker.jar ×1 プログラム本体
  Readme.txt ×1 説明
 Setdata [設定データ等収納専用フォルダ]
■ 設置:(インストール)
インストールという操作はありません、
プログラム収納フォルダ[JMailChecker] をどこかに置いてください、
好みの問題ですが、Cドライブ直下とか、Dドライブなどが良いと思います。
UACが効いている、Windowsに最初からあるフォルダ内には置かないでください。
例:「C:\Program Files」 などはダメです
■ アンインストール
設定・記録ファイルなど全て、 プログラム収納フォルダの[Setdata]フォルダ内で生成・操作されます、
レジストリなど外部への書き込みなどはありません、
プログラム収納フォルダごと削除でOKです。
■バージョン情報:
2015 10/02 v1.02
JISメールでも、 文字コードが指定されてないと、JavaMailでは、text/plainの、Ascii文字列と判断します、
その場合、環境に依存した表示がされ、読めません。
そのようなJISメールを送ってくるのは、今までで、私がお世話になっている群馬インターネットくらいです、
インターネット創世記の頃は、一般的だったのでしょう、クレームを言っても受け付けないようなので、
読めるように修正致しました。
if(asciiTxt.indexOf('\u001b') >= 0)
   new String(asciiTxt.getBytes("ISO-2022-JP"), "ISO-2022-JP")
上記コードでは、丁寧に、JISコードを判定していますが、
メールは、ASCIIかJISで来るものだと断定するなら、判定行はいらない。
2015 9月 1.01を公開
2006年から、このソフトを使っていますが、
このソフトで文章表示されないメールは必要ないものとしてきましたが、
最近、必要なメールも文章表示されなくなってきたので、
JavaMail / JavaBeans Activation Framework の力を借りて、最低限表示出来るように改良しました。
■■■ ダウンロード ■■■■■■■■■■■■
         
見積書・請求書 作成管理業務ソフト
見積請求書プラス ページへ進む

リンクはフリーです
ソフトウェア開発 Yamanaka
Copyright(C) 2006 All rights reserved.