My code is :
// File Name SendEmail.java
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendEmail
{
public static void main(String [] args)
{
// Recipient's email ID needs to be mentioned.
String to = "toEmail@gmail.com";
// Sender's email ID needs to be mentioned
String from = "fromEmail@gmail.com";
// Assuming you are sending email from localhost
String host = "localhost";
// Get system properties
Properties properties = System.getProperties();
// Setup mail server
properties.setProperty("mail.smtp.host", host);
// Get the default Session object.
Session session = Session.getDefaultInstance(properties);
try{
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(from));
// Set To: header field of the header.
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// Set Subject: header field
message.setSubject("This is the Subject Line!");
// Now set the actual message
message.setText("This is actual message");
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
My program was working correctly last night; I could send email from any address to any other, but now this error is occuring:
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
nested exception is:
java.net.ConnectException: Connection refused
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at SendEmail.main(SendEmail.java:49)
Line 49 is:
Transport.send(message);
Can anyone help me fix this error?
My operating system is : Linux,Fedora 16 -kernel: 3.3.7
Could not connect to SMTP host: localhost, port: 25;
SMTP must be not running on your system or disabled for you as user. Check with your system administrator and get it enabled for you.
To check if SMTP is working on your Linux system, try the following commands:
netstat -an | grep 25
telnet <yourhost-or-ipnumber> 25
echo -e "quit" | nc localhost 25
You should check that sendmail
daemon is started and is available always.
And if you have access to any other SMTP servers, try to send mail using their SMTP host name, to check if your code snippet is working.
Example : String host = "smtp.gmail.com";