Невозможно отправить почту - javax.mail.NoSuchProviderException: smtp - PullRequest
3 голосов
/ 29 марта 2011

Я пытаюсь отправить письмо, используя 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)

Пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Мне кажется, что вам не хватает параметра свойств, который бы устанавливал транспортный протокол smtp

  properties.put("mail.transport.protocol", "smtp");
1 голос
/ 29 марта 2011

Основано на некотором googling ...

Ваша проблема звучит как проблема с classpath.

Убедитесь, что у вас есть только одна версия файла mail.jar иActivation.jar в вашем классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...