Making JavaMail work
Dear all,
I am trying to get JavaMail to work and have picked a library "Very
Simple Java Mail" at http://code.google.com/p/vesijama/ that seems to
provide a nice degree of abstraction. I would be grateful for advice
on how to find out what goes wrong, e.g. why my program does not reach
Internet. I run Java 1.6 on OSX 10.5.8 and Tomcat v6.0.
The program is basically the sample program for the wrapper library at
http://code.google.com/p/vesijama/source/browse/trunk/src/MailTest.java
:
public class TestMail {
static { // normally you would do this in the log4j.xml
final Logger rootLogger = Logger.getRootLogger();
rootLogger.addAppender(new ConsoleAppender(new SimpleLayout()));
rootLogger.setLevel(Level.INFO);
}
public static void main(String[] args) {
testMail();
}
public static void testMail() throws MailException,
UnknownHostException {
final Email email = new Email();
email.setFromAddress("myApplication", "foo.bar@somemail.com");
email.addRecipient("jesboxx", "jesboxx@gmail.com",
RecipientType.TO);
email.setText("We should meet up!");
email.setTextHTML("<b>We should meet up!</b>");
email.setSubject("hey");
sendMail(email);
}
private static void sendMail(final Email email) {
final String host = System.getProperty("smtp.gmail.com") !=
null ?
System.getProperty("smtp.gmail.com") : "";
final String username = System.getProperty("myEmail@gmail.com") !=
null ?
System.getProperty("myEmail@gmail.com") : "";
final String password = System.getProperty("a_password") != null ?
System.getProperty("a_password") : "";
new Mailer(host, 25, username, password).sendMail(email);
}
}
The stacktrace is then becomes :
ERROR - Could not connect to SMTP host: localhost, port: 25
javax.mail.MessagingException: Could not connect to SMTP host:
localhost, port: 25;
nested exception is:
java.net.ConnectException: Connection refused
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:
1545)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:
453)
at javax.mail.Service.connect(Service.java:313)
at javax.mail.Service.connect(Service.java:172)
at javax.mail.Service.connect(Service.java:121)
at javax.mail.Transport.send0(Transport.java:190)
at javax.mail.Transport.send(Transport.java:120)
at org.codemonkey.vesijama.Mailer.sendMail(Mailer.java:174)
at TestMail.sendMail(TestMail.java:56)
at TestMail.testMail(TestMail.java:47)
at TestMail.main(TestMail.java:33)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:
195)