I am using java 6.0, Spring 3.0 and Maven. I got a strange problem.
I am trying to send mail from my application, but I can not do it. I checked with debugging, the logs look great - no exceptions / errors, but mail does not start.
Relevant Code:
import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage.RecipientType; public class JavaEmail { private final String SMTP_AUTH_USER = " admin@myorg.com "; private final String SMTP_AUTH_PWD = "secret"; public void sendMain(String strFrom, String strTo, String strSubject, String strContent) throws MessagingException { Message message = new MimeMessage(getSession()); message.addRecipient(RecipientType.TO, new InternetAddress(strTo)); message.addFrom(new InternetAddress[] { new InternetAddress(strFrom)}); message.setSubject(strSubject); message.setContent(strContent, "text/plain"); try { Transport.send(message); } catch (Exception e) { e.printStackTrace(); } } private Session getSession() { Authenticator authenticator = new Authenticator(); Properties properties = new Properties(); properties.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName()); properties.setProperty("mail.smtp.auth", "true"); properties.setProperty("mail.smtp.host", "smtp.myorg.com"); properties.setProperty("mail.smtp.port", "25"); properties.setProperty("mail.debug", "true"); return Session.getInstance(properties, authenticator); } private class Authenticator extends javax.mail.Authenticator { private PasswordAuthentication authentication; public Authenticator() { String username = SMTP_AUTH_USER; String password = SMTP_AUTH_PWD; authentication = new PasswordAuthentication(username, password); } protected PasswordAuthentication getPasswordAuthentication() { return authentication; } } public static void main (String [] args) throws MessagingException { JavaEmail email = new JavaEmail(); email.sendMain(" myid@myorg.com ", " myid@myorg.com ", "Say Hi ..", "Body"); } }
POM (relevant):
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.1</version> </dependency>
Logs:
DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: trying to connect to host "smtp.myorg.com", port 25, isSSL false 220 droutbound.logix.in ESMTP DEBUG SMTP: connected to host "smtp.myorg.com", port: 25 EHLO ABCDE1234 250-droutbound.logix.in 250-8BITMIME 250-SIZE 26214400 250-STARTTLS 250-AUTH PLAIN LOGIN 250 AUTH=PLAIN LOGIN DEBUG SMTP: Found extension "8BITMIME", arg "" DEBUG SMTP: Found extension "SIZE", arg "26214400" DEBUG SMTP: Found extension "STARTTLS", arg "" DEBUG SMTP: Found extension "AUTH", arg "PLAIN LOGIN" DEBUG SMTP: Found extension "AUTH=PLAIN", arg "LOGIN" DEBUG SMTP: Attempt to authenticate AUTH LOGIN 334 VXNl1cm25hbW2U6 c2NjYWRta1W5Ae3mVuc42Fy5Lmlu 334 UGFz7c63dv2cmQ6 WmVuc22Fy5MT7IzIw== 235
I also tried with other sample programs - with or without Spring configurations. There is no mistake. BUT also not mail.
IMP - the same program works fine if I use them in another project that does not use maven but otherwise has the same configuration. There are a few more lines in these magazines.
**DATA 354 go ahead From: address@myorg.com To: address@myorg.com Message-ID: < 12694833.01327427956033.JavaMail.myid@ABCDE12345 > Subject: Say Hi .. MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Body .**
I am stuck. Is it because of Maven? Please suggest.