我正在尝试使用带有此代码的apache james发送电子邮件
public static void main(String[] args)
{
String user = "sumit"; // Newly created user on JAMES
String password = "sumit"; // user password
String fromAddress = "sumit@localhost"; // newlycreateduser@localhost
String toAddress = "sumitjain91@gmail.com";
// Create a mail session
Properties properties = new Properties();
properties.put("mail.smtp.host", "localhost");
properties.put("mail.smtp.port", "25");
properties.put("mail.smtp.username", user);
properties.put("mail.smtp.password", password);
Session session = Session.getDefaultInstance(properties, null);
try
{
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromAddress));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddress));
message.setSubject("Email from our JAMES Server");
message.setText("Luke, I'm your father!!");
Transport.send(message);
System.out.println("Email sent successfully");
}
catch (MessagingException e)
{
e.printStackTrace();
}
}
我收到以下异常
javax.mail.NoSuchProviderException: smtp
at javax.mail.Session.getService(Session.java:784)
at javax.mail.Session.getTransport(Session.java:720)
at javax.mail.Session.getTransport(Session.java:660)
at javax.mail.Session.getTransport(Session.java:640)
at javax.mail.Session.getTransport(Session.java:697)
at javax.mail.Transport.send0(Transport.java:192)
at javax.mail.Transport.send(Transport.java:124)
at mail.Main.main(Main.java:44)
请帮忙
答案 0 :(得分:1)
答案 1 :(得分:1)
在我看来,您缺少将传输协议设置为smtp的属性设置
properties.put("mail.transport.protocol", "smtp");