ErrorMailStatus.java 17.4 KB
Newer Older
Kim Gyeongeun committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372
package jp.agentec.sinaburocast.enumration;

public class ErrorMailStatus {

	public static enum SmtpErrorType {

		ERR_421(421, "Too many bad command","コマンドがサーバーで指定された回数、失敗しました。(ソケットは強制クローズされます)"),

		ERR_450_1(450, "Mail in the mailbox is full","メールボックスに保存できるメール数を超えています。"),

		ERR_450_2(450, "Mailbox is full","メールボックスに保存できるメール数を超えています。"),

		ERR_450_3(450, "The transmission has been permitted to this user only in the same domain","所属、又は管理ドメインからの送受信が制限されています。"),

		ERR_451_1(451,"database error",
				"xxxxx のアカウントを確認中にファイルが要因のエラーがありました。"),

		ERR_451_2(451,"spool faile, please try again",
				"Spool フォルダに書き込めませんでした。"),

		ERR_451_3(451,"Session Closed",
				"サーバー側でソケットをクローズする必要があったため送信できませんでした。"),

		ERR_451_4(451,"domain doesn't exist",
				"指定されたドメインが存在しませんでした。"),

		ERR_451_5(451,"connection was refused, Connection closed",
				"該当する接続はサーバーによって拒否されました。(一時的な拒否)"),

		ERR_451_6(451,"rejected for policy reasons",
				"該当する接続はサーバーによって拒否されました。(一時的な拒否)"),

		ERR_452_1(452,"Mail system storage is full",
				"本文を受信する際にサーバー上にテンポラリファイルが作成できませんでした。"),

		ERR_452_2(452,"Mail system is full",
				"サーバー上でファイル又はメモリを確保することができませんでした。"),

		ERR_452_3(452,"Mail cannot be received by the system error",
				"サーバーがインストールされているドライブのHDDの残り容量が指定容量以下です。"),

		ERR_452_4(452,"Too many recipients",
				"サーバーで指定された宛先の最大数を超えて宛先を指定されました。"),

		ERR_452_5(452,"Too many recipients in today",
				"1日に送信できるメール数を超えました"),

		ERR_500_1(500,"not exists alias or domain",
				"メールアドレスでエイリアス又はドメインが指定されていません。"),

		ERR_500_2(500,"Syntax error",
				"文法ミス、又は解析できないコマンドが送信されました。"),

		ERR_500_3(500,"The length of the command is too long",
				"1行のコマンドの長さが改行を含む 1024bytes を超えています。"),

		ERR_500_4(500,"Command unrecognized",
				"文法ミス、又はサポートされていないコマンドが送信されました。"),

		ERR_501_5(501,"HELO requires domain address",
				"HELO コマンドでドメイン名又はホスト名が省略されています。"),

		ERR_501_6(501,"EHLO requires domain address",
				"EHLO コマンドでドメイン名又はホスト名が省略されています。"),

		ERR_502(502,"Mailing list is not supported.(Product only)",
				"フリー版でメーリングリストを設定し、メーリングリストを利用しようとしました。(内蔵メーリングリスト機能は製品版のみの機能です)"),

		ERR_503_1(503,"Polite people say HELO first",
				"HELO/EHLO コマンドを送信せずに MAIL FROM コマンドを送信しました"),

		ERR_503_2(503,"Need MAIL before RCPT",
				"MAIL FROM コマンドを送信する前に RCPT TO コマンドを送信しました(送信者を指定せずに宛先を指定した場合)"),

		ERR_503_3(503,"Need SMTP authentication first",
				"SMTP認証が設定されている場合に、SMTP認証を行わずに コマンドを送信しました。"),

		ERR_503_4(503,"Need POP3 authentication first",
				"POP Before SMTP 認証が設定されている場合に、サーバーで指定された時間内に POP3 認証を行っていません。"),

		ERR_503_5(503,"Sender already specified",
				"複数回 MAIL FROM コマンドを送信しました。"),

		ERR_503_6(503,"Duplicate HELO and EHLO",
				"HELO/EHLO コマンドが2回以上送信されました。"),

		ERR_503_7(503,"Need MAIL command(sender)",
				"送信者を指定せずに本文の送信を行おうとしました。"),

		ERR_503_8(503,"Need RCPT command(recipient)",
				"宛先を指定せずに本文の送信を行おうとしました。"),

		ERR_511_1(511,"recipient address has invalid format",
				"送信者メールアドレスのフォーマット(形式)が間違っている。"),

		ERR_511_2(511,"can't find a valid MX for sender domain",
				"そのドメインにはMX(メール用のサーバー)が存在していません。"),

		ERR_522(522,"recipient mailbox is full",
				"メールボックスの容量が一杯で受け取れませんでした。"),

		ERR_535_1(535,"authentication(PLAIN) failed",
				"PLAINを使ったSMTP認証で認証に失敗しました。"),

		ERR_535_2(535,"authentication(LOGIN) failed",
				"LOGINを使ったSMTP認証で認証に失敗しました。"),

		ERR_535_3(535,"authentication(CRAMMD5) failed",
				"CRAM-MD5を使ったSMTP認証で認証に失敗しました。"),

		ERR_550_1(550,"Unknwon local user",
				"xxxxx で指定されたローカルユーザーが存在しません。"),

		ERR_550_2(550,"Not local user. Relay error",
				"xxxxx はローカルユーザーでは無く、中継可能でも無りません。"),

		ERR_550_3(550,"Not local user, server is not relaid. Recipient error",
				"送信者がローカルユーザーでは無く、中継も許可されていないアドレスが外部へ送信を行おうとしました。(主に不正中継)"),

		ERR_550_4(550,"Not local user. Recipient error",
				"送信者のドメインは管理ドメインに含まれるが、ユーザーとして存在しません。"),

		ERR_550_5(550,"Not local user. It's not possible to send it to the outside",
				"外部への送信が禁止されています。"),

		ERR_550_6(550,"rejected for policy reasons",
				"HELO/EHLO で指定されたドメイン名又はホスト名がサーバーの設定で禁止されています。"),

		ERR_550_7(550,"Can't find your SMTP Server. mail is not accepted",
				"逆引きチェックを行い、確認が出来ませんでした"),

		ERR_550_8(550,"connection was refused, Connection closed",
				"該当する接続はサーバーによって拒否されました。(永続的な拒否)"),

		ERR_551_1(551,"no mailbox here by that name",
				"そのようなメールアドレスは存在していません。"),

		ERR_552_1(552,"Database error. please try again",
				"自動登録アカウントで登録に失敗しました。"),

		ERR_552_2(552,"message size exceeds received limit",
				"メールのサイズが該当するアカウントで受信できるサイズ(又はサーバーで指定されたサイズ)以上でした。"),

		ERR_553_1(553,"address is invalid",
				"POP3 専用アカウントで送信を行おうとしました。"),

		ERR_553_2(553,"No such user here",
				"xxxxx で指定されたユーザーは存在しませんでした。"),

		ERR_553_3(553,"No such user and domain here",
				"サーバーで禁止されている宛先に送信しようとしました。(キャンセルRCPTリスト)"),

		ERR_554_1(554,"Size over. Message not accepted",
				"送信しようとしたメールのサイズがサーバーで指定されているサイズ以上でした。"),

		ERR_554_2(554,"Routing loop detected",
				"PMail Server がメールの永久ループを感知しました。"),

		ERR_554_3(554,"Mail was rejected with the SMTP filter",
						"受信したメールはサーバー上のフィルタによって破棄されています。"),

		ERR_554_4(554,"Mail was not receive to mailinglist",
				"メーリングリストで問題(エラー又は予約数を超えた場合)が発生しました。(メーリングリストは該当するメールを受け取っていません)"),

		ERR_554_5(554,"Breach of Sender Policy Framework",
				"SPF での判定が FAIL になりました。"),

		ERR_554_6(554,"Breach of Local Sender Policy",
				"ローカル送信者確認(LSP) で拒否されました。"),

		ERR_554_7(554,"Your email is considered spam",
				"メールの内容がスパムメールであると判断されました。"),

		ERR_999(999,"","エラー内容不明");

		/**
		 * エラーコード。
		 */
		private Integer code;

		/**
		 * 検索文字列。
		 */
		private String searchString;

		/**
		 * エラーメッセージ。
		 */
		private String message;

		/**
		 * コンストラクタ。
		 *
		 */
		private SmtpErrorType(Integer code, String searchString, String message) {
			this.code = code;
			this.searchString = searchString;
			this.message = message;
		}

		public Integer getCode() {
			return this.code;
		}

		public String getSearchString() {
			return this.searchString;
		}

		public String getMessage() {
			return this.message;
		}

		/**
         * メール本文から該当するEnumを検索しリターンする<br>
         * @param searchString コード
         * @return Enum
         */
        public static SmtpErrorType toEnum(String content) {
            for (SmtpErrorType type : SmtpErrorType.values()) {
    			if (content.indexOf(type.getSearchString()) > -1){
                    return type;
                }
            }
            return ERR_999;
        }

	}

	public static enum SmtpStatusType {

		Status_410("4.1.0","その他のアドレスの状態"),
		Status_411("4.1.1","送信先メールボックス アドレスが正しくない"),
		Status_412("4.1.2","送信先システム アドレスが正しくない"),
		Status_413("4.1.3","送信先メールボックス アドレスの構文が正しくない"),
		Status_414("4.1.4","送信先メールボックス アドレスがあいまい"),
		Status_415("4.1.5","送信先メールボックス アドレスが有効"),
		Status_416("4.1.6","メールボックスが移動されている"),
		Status_417("4.1.7","送信者のメールボックス アドレスの構文が正しくない"),
		Status_418("4.1.8","送信者のシステム アドレスが正しくない"),
		Status_420("4.2.0","その他または未定義のメールボックス状態"),
		Status_421("4.2.1","メールボックスが無効で、メッセージを受け付けない"),
		Status_422("4.2.2","メールボックスがいっぱい"),
		Status_423("4.2.3","メッセージの長さが管理制限を超えている"),
		Status_424("4.2.4","メーリング リスト展開の問題"),
		Status_430("4.3.0","その他または未定義のメール システム状態"),
		Status_431("4.3.1","メール システムがいっぱい"),
		Status_432("4.3.2","システムがネットワーク メッセージを受け付けない"),
		Status_433("4.3.3","システムが選択した機能を利用できない"),
		Status_434("4.3.4","システムに対してメッセージが大きすぎる"),
		Status_440("4.4.0","その他または未定義のネットワークやルーティング状態"),
		Status_441("4.4.1","ホストから応答がない"),
		Status_442("4.4.2","接続が正しくない"),
		Status_443("4.4.3","ルーティング サーバー エラー"),
		Status_444("4.4.4","ルーティングできない"),
		Status_445("4.4.5","ネットワークの混雑"),
		Status_446("4.4.6","ルーティングのループを検出"),
		Status_447("4.4.7","配信の期限切れ"),
		Status_450("4.5.0","その他または未定義のプロトコル状態"),
		Status_451("4.5.1","無効なコマンド"),
		Status_452("4.5.2","構文エラー"),
		Status_453("4.5.3","受信者が多すぎる"),
		Status_454("4.5.4","コマンドの引数が無効"),
		Status_455("4.5.5","プロトコル バージョンが正しくない"),
		Status_460("4.6.0","その他または未定義のメディア エラー"),
		Status_461("4.6.1","メディアがサポートされていない"),
		Status_462("4.6.2","要求された変換が禁止されている"),
		Status_463("4.6.3","要求された変換がサポートされていない"),
		Status_464("4.6.4","変換が実行されなかった"),
		Status_465("4.6.5","変換エラー"),
		Status_470("4.7.0","その他または未定義のセキュリティ状態"),
		Status_471("4.7.1","配信が認証されないために、メッセージが拒否される"),
		Status_472("4.7.2","メーリング リストの展開が禁止されている"),
		Status_473("4.7.3","要求されたセキュリティ変換が禁止されている"),
		Status_474("4.7.4","セキュリティ機能がサポートされていない"),
		Status_475("4.7.5","暗号化エラー"),
		Status_476("4.7.6","暗号化アルゴリズムがサポートされていない"),
		Status_477("4.7.7","メッセージの整合性エラー"),
		Status_510("5.1.0","その他のアドレスの状態"),
		Status_511_1("5.1.1","送信者メールアドレスのフォーマット(形式)が間違っている。"),
		Status_511_2("5.1.1","送信者メールアドレスに使ってはいけない文字が含まれています。"),
		Status_511_3("5.1.1","そのドメインにはMX(メール用のサーバー)が存在していません。"),
		Status_512("5.1.2","送信先システム アドレスが正しくない"),
		Status_513("5.1.3","送信先メールボックス アドレスの構文が正しくない"),
		Status_514("5.1.4","送信先メールボックス アドレスがあいまい"),
		Status_515("5.1.5","送信先メールボックス アドレスが有効"),
		Status_516("5.1.6","メールボックスが移動されている"),
		Status_517("5.1.7","送信者のメールボックス アドレスの構文が正しくない"),
		Status_518("5.1.8","送信者のシステム アドレスが正しくない"),
		Status_520("5.2.0","その他または未定義のメールボックス状態"),
		Status_521("5.2.1","メールボックスが無効で、メッセージを受け付けない"),
		Status_522("5.2.2","メールボックスの容量が一杯で受け取れませんでした。"),
		Status_523("5.2.3","メッセージの長さが管理制限を超えている"),
		Status_524("5.2.4","メーリング リスト展開の問題"),
		Status_530("5.3.0","その他または未定義のメール システム状態"),
		Status_531("5.3.1","メール システムがいっぱい"),
		Status_532("5.3.2","システムがネットワーク メッセージを受け付けない"),
		Status_533("5.3.3","システムが選択した機能を利用できない"),
		Status_534("5.3.4","システムに対してメッセージが大きすぎる"),
		Status_540("5.4.0","その他または未定義のネットワークやルーティング状態"),
		Status_541("5.4.1","ホストから応答がない"),
		Status_542("5.4.2","接続が正しくない"),
		Status_543("5.4.3","ルーティング サーバー エラー"),
		Status_544("5.4.4","ルーティングできない"),
		Status_545("5.4.5","ネットワークの混雑"),
		Status_546("5.4.6","ルーティングのループを検出"),
		Status_547("5.4.7","配信の期限切れ"),
		Status_550("5.5.0","その他または未定義のプロトコル状態"),
		Status_551("5.5.1","そのようなメールアドレスは存在していません。"),
		Status_552("5.5.2","構文エラー"),
		Status_553("5.5.3","受信者が多すぎる"),
		Status_554("5.5.4","メールの内容がスパムメールであると判断されました。"),
		Status_555("5.5.5","プロトコル バージョンが正しくない"),
		Status_560("5.6.0","その他または未定義のメディア エラー"),
		Status_561("5.6.1","メディアがサポートされていない"),
		Status_562("5.6.2","要求された変換が禁止されている"),
		Status_563("5.6.3","要求された変換がサポートされていない"),
		Status_564("5.6.4","変換が実行されなかった"),
		Status_565("5.6.5","変換エラー"),
		Status_570("5.7.0","その他または未定義のセキュリティ状態"),
		Status_571("5.7.1","配信が認証されないために、メッセージが拒否される"),
		Status_572("5.7.2","メーリング リストの展開が禁止されている"),
		Status_573("5.7.3","要求されたセキュリティ変換が禁止されている"),
		Status_574("5.7.4","セキュリティ機能がサポートされていない"),
		Status_575("5.7.5","暗号化エラー"),
		Status_576("5.7.6","暗号化アルゴリズムがサポートされていない"),
		Status_577("5.7.7","メッセージの整合性エラー"),
		Status_999("9.9.9","ステータス不明");

		/**
		 * エラーコード。
		 */
		private String code;

		/**
		 * エラーメッセージ。
		 */
		private String message;

		/**
		 * コンストラクタ。
		 *
		 */
		private SmtpStatusType(String code, String message) {
			this.code = code;
			this.message = message;
		}

		public String getCode() {
			return this.code;
		}

		public String getMessage() {
			return this.message;
		}

		/**
         * メールヘッダStatusから該当するEnumを検索しリターンする<br>
         * @param searchString コード
         * @return Enum
         */
        public static SmtpStatusType toEnum(String code) {
            for (SmtpStatusType type : SmtpStatusType.values()) {
                if (type.getCode().equals(code)) {
                    return type;
                }
            }
            return Status_999;
        }

	}

}