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.