package com.ack.j2ee.javamail;
import java.io.PrintStream;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.SendFailedException;
/**
* provides useful feedback on JavaMail MessagingExceptions
*/
public class MailMessageUtil implements java.io.Serializable {
/**
* Writes the messaging exception in readable format to the supplied print stream.
* @param me The MessagingException object
* @param out The PrintStream to display the exception on
*/
public static void reportOnException( MessagingException me, PrintStream out ) {
do {
if( me instanceof SendFailedException ) {
SendFailedException sfex = (SendFailedException) me;
Address[] invalid = sfex.getInvalidAddresses();
if( invalid != null ) {
out.println( " ** Invalid Addresses" );
if( invalid != null ) {
for( int i = 0; i < invalid.length; i++ )
out.println( " " + invalid[i] );
}
}
Address[] validUnsent = sfex.getValidUnsentAddresses();
if( validUnsent != null ) {
out.println( " ** ValidUnsent Addresses" );
if( validUnsent != null ) {
for( int i = 0; i < validUnsent.length; i++ )
out.println( " " + validUnsent[i] );
}
}
Address[] validSent = sfex.getValidSentAddresses();
if( validSent != null ) {
out.println( " ** ValidSent Addresses" );
if( validSent != null ) {
for( int i = 0; i < validSent.length; i++ )
out.println( " " + validSent[i] );
}
}
}
out.println();
if( me instanceof MessagingException ) {
me = (MessagingException) me.getNextException();
}
else {
me = null;
}
} while( me != null );
}
}