投稿日:2005年10月05日 作成鷹の巣

No.19691 javamailであて先が存在しな場合のエラー取得方法を教えてください。



javamailであて先が存在しな場合のエラー取得方法を教えてください。

No.19691 投稿時間:2005年10月05日(Wed) 14:53 投稿者名:仕事人 URL:

次のようなソースでメール送信しています。
**************************************
public static void send (
String smtphost,
String from, // 送信元メールアドレス
String fromname, //送信元表示名
String to, // 宛先メールアドレス
String subject,// メール題名
String body) throws BaseException{ // メール本文


try {
// メール送信準備
Properties props = new Properties();
props.put("mail.smtp.host", smtphost);
Session session = Session.getInstance(props, null);


// メール作成
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setFrom(new InternetAddress(from,fromname,"ISO-2022-JP"));
mimeMessage.setReplyTo(InternetAddress.parse( from, true ));
mimeMessage.setSender(new InternetAddress(from,fromname,"ISO-2022-JP"));
mimeMessage.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(to,true));
mimeMessage.setSubject(subject, "ISO-2022-JP");
mimeMessage.setText(body, "ISO-2022-JP");
mimeMessage.setSentDate(new Date());

// 送信
Transport.send(mimeMessage);

} catch (MessagingException mex) {
//e.printStackTrace();
log.debug("MessagingException(MailSender.send)" + mex);
mex.printStackTrace();
BaseException bex = new BaseException();
bex.setKey("error.sql"); //KEYセット
bex.setErrorMessage(mex.toString()); //エラー内容セット
throw bex;
} catch(java.io.UnsupportedEncodingException uex){
log.debug("AddressException(MailSender.send)" + uex);
uex.printStackTrace();
BaseException bex = new BaseException();
bex.setKey("error.sql"); //KEYセット
bex.setErrorMessage(uex.toString()); //エラー内容セット
throw bex;
}
************************************
SMTPHOST名が不正だとexceptionでエラーが拾えるのですが、
送信元アドレスが存在しないアドレスであったとしても、
送信先アドレスが存在しないアドレスであったとしても、
exceptionで拾えません。

メールサーバ=EXCHANGEサーバでOUTLOOKを使用してメール送信する場合は
あて先が存在しなかったりすると、エラーです・・・という内容のメールが返信されてきます。

WEB画面上で送信したものはEXCHANGEサーバ上にエラーメールは返信されません。

(1)JAVAでエラーを拾う。
(2)EXCHANGEサーバにエラーメールが返信される。

のいずれかを実施したいのですが、
方法はありますでしょうか?

よろしくお願いいたします。


PGMを修正したら、エラーメールが返信されました。

No.19692 投稿時間:2005年10月05日(Wed) 16:43 投稿者名:仕事人 URL:

私の勘違いで、PGMを修正したら、エラーメールが返信されました。

このソースは正しかったのですが、
この前の処理でエラーとなるアドレスをセットしてませんでした・・・。
(正常終了していたので、エラーが返信されていなかっただけでした。)

また何かありましたら、掲示板に書き込みますので、
その際はよろしくお願いします。

> 次のようなソースでメール送信しています。
> **************************************
> public static void send (
> String smtphost,
> String from, // 送信元メールアドレス
> String fromname, //送信元表示名
> String to, // 宛先メールアドレス
> String subject,// メール題名
> String body) throws BaseException{ // メール本文
>
>
> try {
> // メール送信準備
> Properties props = new Properties();
> props.put("mail.smtp.host", smtphost);
> Session session = Session.getInstance(props, null);
>
>
> // メール作成
> MimeMessage mimeMessage = new MimeMessage(session);
> mimeMessage.setFrom(new InternetAddress(from,fromname,"ISO-2022-JP"));
> mimeMessage.setReplyTo(InternetAddress.parse( from, true ));
> mimeMessage.setSender(new InternetAddress(from,fromname,"ISO-2022-JP"));
> mimeMessage.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(to,true));
> mimeMessage.setSubject(subject, "ISO-2022-JP");
> mimeMessage.setText(body, "ISO-2022-JP");
> mimeMessage.setSentDate(new Date());
>
> // 送信
> Transport.send(mimeMessage);
>
> } catch (MessagingException mex) {
> //e.printStackTrace();
> log.debug("MessagingException(MailSender.send)" + mex);
> mex.printStackTrace();
> BaseException bex = new BaseException();
> bex.setKey("error.sql"); //KEYセット
> bex.setErrorMessage(mex.toString()); //エラー内容セット
> throw bex;
> } catch(java.io.UnsupportedEncodingException uex){
> log.debug("AddressException(MailSender.send)" + uex);
> uex.printStackTrace();
> BaseException bex = new BaseException();
> bex.setKey("error.sql"); //KEYセット
> bex.setErrorMessage(uex.toString()); //エラー内容セット
> throw bex;
> }
> ************************************
> SMTPHOST名が不正だとexceptionでエラーが拾えるのですが、
> 送信元アドレスが存在しないアドレスであったとしても、
> 送信先アドレスが存在しないアドレスであったとしても、
> exceptionで拾えません。
>
> メールサーバ=EXCHANGEサーバでOUTLOOKを使用してメール送信する場合は
> あて先が存在しなかったりすると、エラーです・・・という内容のメールが返信されてきます。
>
> WEB画面上で送信したものはEXCHANGEサーバ上にエラーメールは返信されません。
>
> (1)JAVAでエラーを拾う。
> (2)EXCHANGEサーバにエラーメールが返信される。
>
> のいずれかを実施したいのですが、
> 方法はありますでしょうか?
>
> よろしくお願いいたします。


目次掲示板過去ログ目次▲頁先頭