JavaMail application won't send email to external SMTP server
Posted
by Luiz Cruz
on Server Fault
See other posts from Server Fault
or by Luiz Cruz
Published on 2010-02-05T22:59:18Z
Indexed on
2010/03/22
18:01 UTC
Read the original article
Hit count: 518
This is actually a question from an exam, but I believe it could help others troubleshooting a similar situation.
In a system, an e-mail needs to be sent to a certain mailbox. The following Java code, which is part of a larger system, was developed for that. Assume that "example.com" corresponds to a valid registered internet domain.
public void sendEmail(){
String s1=”Warning”;
String b1=”Contact IT support.”;
String r1=”[email protected]”;
String d1=”[email protected]”;
String h1=”mx.intranet”;
Properties p1 = new Properties();
p1.put(“mail.host”, h1);
Session session = Session.getDefaultInstance(p1, null);
MimeMessage message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(r1));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(d1));
message.setSubject(s1);
message.setText(b1);
Transport.send(message);
}
catch (MessagingException e){
System.err.println(e);
}
}
The execution of this code, within the testing environment of an application server, does NOT work as expected. The mailbox of the "example.com" server never receives the email, even tough all string values in the code are correctly attributed.
The output for the command "netstat -np TCP" in the application server during execution is shown bellow:
Src Add Src Port Dest Add Dest Port State
192.168.5.5 54395 192.168.7.1 25 SYN_SENT
192.168.5.5 54390 192.168.7.1 110 TIME_WAIT
192.168.5.5 52001 200.218.208.118 80 CLOSE_WAIT
192.168.5.5 52050 200.218.208.118 80 ESTABLISHED
192.168.5.5 50001 200.255.94.202 25 TIME_WAIT
192.168.5.5 50000 200.255.94.202 25 ESTABLISHED
With the exception of the lines that were NAT'd, all others are associated with the Java application server, which created them after the execution of the code above.
The e-mail server used in this environment is the production server, which is online and does not require any authentication for internal connections.
Based on this situation, point out three possible causes for the problem.
© Server Fault or respective owner