When you need to debug a JavaMail application, you can use the JavaMail debugging feature. Enabling the debugger triggers the JavaMail component of WebSphere Application Server to print the following data to the stdout output stream:
This output stream is redirected to the SystemOut.log file for the specific application server.
The mail debugger functions on a per session basis. To enable the JavaMail debugging feature:
Resources | Mail Providers | mail_session | Mail Session | mail session
Example
DEBUG: not loading system providers in <java.home>/lib DEBUG
not loading optional custom providers file:
/META-INF/javamail.providers DEBUG: successfully loaded default providers
DEBUG Tables of loaded providers
DEBUG: Providers listed by Class Name:
{com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc],
com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc],
com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol:
{imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems,
Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc],
smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: not loading optional address map file:
/META-INF/javamail.address.map *** In SessionFactory.getObjectInstance,
The default SessionAuthenticator is based on:
store_user = john_smith store_pw = abcdef
*** In SessionFactory.getObjectInstance, parameters in the new session:
mail.store.protocol="imap"
mail.transport.protocol="smtp"
mail.imap.user="john_smith"
mail.smtp.host="smtp.coldmail.com"
mail.debug="true"
ws.store.password="abcdef"
mail.from="john_smith@coldmail.com"
mail.smtp.class="com.sun.mail.smtp.SMTPTransport"
mail.imap.class="com.sun.mail.imap.IMAPStore"
mail.imap.host="coldmail.com"
DEBUG: mail.smtp.class property exists and points to com.sun.mail.smtp.SMTPTransport DEBUG SMTP:
useEhlo true, useAuth false DEBUG: SMTPTransport trying to connect to host "smtp.coldmail.com", port 25
javax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.MessagingException: Unknown SMTP host: smtp.coldmail.com;
nested exception is java.net.UnknownHostException: smtp.coldmail.com
at javax.mail.Transport.send0(Transport.java:219)
at javax.mail.Transport.send(Transport.java:81)
at ws.mailfvt.SendSaveTestCore.runAll(SendSaveTestCore.java:48)
at testers.AnyTester.main(AnyTester.java:130)
This output illustrates a connection failure to a Simple Mail Transfer Protocol (SMTP) server because a fictitious name, smtp.coldmail.com, is specified as the server name. The following list provides tips on reading the previous sample of debugger output:
Note: Review the listed properties and values to verify that they correspond.