Пример электронной почты общего висящего на send () - PullRequest
1 голос
/ 29 сентября 2011

Я пытаюсь получить этот пример для работы библиотеки электронной почты Apache Commons. Вот мой код:

    SimpleEmail email = new SimpleEmail();      
    email.setHostName("smtp.gmail.com");
    email.setSmtpPort(465);
    email.setAuthenticator(new DefaultAuthenticator("username@gmail.com", "password"));     
    email.setTLS(true); 
    try {
        email.setFrom("username@gmail.com");
        email.setSubject("TestMail");
        email.setMsg("This is a test mail ... :-)");
        email.addTo("username@gmail.com");
        System.out.println("Sending...");
        email.send();
        System.out.println("Email sent!");

    } catch (Exception e) {
        System.out.println("Email not sent!");
        e.printStackTrace();
    }

Как вы можете видеть, он практически не изменился по сравнению с примером, за исключением того, что я должен использовать порт 465 вместо 587, потому что 587 вызывает исключение Connection refused (на основе этот вопрос ). Теперь этот код висит на строке email.send(). Единственный вывод, который я получаю:

Sending...

Но не было исключений. Нужно ли открывать порт в брандмауэре? (Возможно, я не смогу сделать это, поскольку я пытаюсь сделать это с работы). Спасибо!

Редактировать

После долгого времени я получаю это исключение:

org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465
...
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Исходя из ваших правок и ответа на мой комментарий, вы должны искать не свои проблемы в коде Java, а в брандмауэре или конфигурации вашей сети.

0 голосов
/ 16 февраля 2015

Вам необходимо установить следующее (потому что вы используете SSL)

Properties props = new Properties();
props.put("mail.smtp.auth", true);
    props.put("mail.smtp.starttls.enable", true);
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.timeout" , "10000");
    props.put("mail.smtp.connectiontimeout" , "10000");
    props.put("mail.smtp.socketFactory.port", 465);
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.socketFactory.fallback", "false");
...