it-swarm.com.ru

Не удалось подключиться к узлу SMTP: smtp.gmail.com, порт: 465, ответ: -1

при отправке почты я получаю эту ошибку

Java.lang.RuntimeException: javax.mail.SendFailedException: отправка не удалось; Вложенное исключение: класс javax.mail.MessagingException: Не удалось подключиться к узлу SMTP: smtp.gmail.com, порт: 465, ответ: -1

мой код:

Properties props = new Properties();
props.put("mail.smtp.Host", "smtp.gmail.com");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");

Session session = Session.getDefaultInstance(props,
        new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication("email","password");
                }
        });

try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("email"));
        message.setRecipients(Message.RecipientType.TO,
                        InternetAddress.parse(this.to));
        message.setSubject("Testing");
        message.setText("Hey, this is the testing email.");



        Transport.send(message);

Любая помощь будет оценена.

Заранее спасибо.

18
user1900376

Вы должны сказать ему, что вы используете SSL:

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

Если вы что-то пропустили, вот рабочий код:

String  d_email = "[email protected]",
            d_uname = "Name",
            d_password = "urpassword",
            d_Host = "smtp.gmail.com",
            d_port  = "465",
            m_to = "[email protected]",
            m_subject = "Indoors Readable File: " + params[0].getName(),
            m_text = "This message is from Indoor Positioning App. Required file(s) are attached.";
    Properties props = new Properties();
    props.put("mail.smtp.user", d_email);
    props.put("mail.smtp.Host", d_Host);
    props.put("mail.smtp.port", d_port);
    props.put("mail.smtp.starttls.enable","true");
    props.put("mail.smtp.debug", "true");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.socketFactory.port", d_port);
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.socketFactory.fallback", "false");

    SMTPAuthenticator auth = new SMTPAuthenticator();
    Session session = Session.getInstance(props, auth);
    session.setDebug(true);

    MimeMessage msg = new MimeMessage(session);
    try {
        msg.setSubject(m_subject);
        msg.setFrom(new InternetAddress(d_email));
        msg.addRecipient(Message.RecipientType.TO, new InternetAddress(m_to));

Transport transport = session.getTransport("smtps");
            transport.connect(d_Host, Integer.valueOf(d_port), d_uname, d_password);
            transport.sendMessage(msg, msg.getAllRecipients());
            transport.close();

        } catch (AddressException e) {
            e.printStackTrace();
            return false;
        } catch (MessagingException e) {
            e.printStackTrace();
            return false;
        }
13
M. Usman Khan

Я столкнулся с этой проблемой при отладке с использованием NetBeans, даже при выполнении самого файла JAR. Антивирус заблокирует отправку электронной почты. Вам следует временно отключить антивирус во время отладки или исключить проверку NetBeans и самого файла JAR. В моем случае я использую Avast. 

Смотрите эту ссылку о том, как исключить: Как добавить исключение файла/веб-сайта в avast! Антивирус 2014

Меня устраивает.

6
ronIT

То, что я сделал, я закомментировал 

props.put("mail.smtp.starttls.enable","true"); 

Потому что, видимо, для G-mail вам это не нужно. Тогда, если вы еще этого не сделали, вам нужно создать пароль приложения в G-mail для вашей программы. Я сделал это, и это сработало отлично. Здесь эта ссылка покажет вам, как: https://support.google.com/accounts/answer/185833

1
MesamH

В моем случае это был антивирус Avast, мешающий подключению . Действия по отключению этой функции: Avast -> Настройки -> Компоненты -> Почтовый щит (Настроить) -> Проверка SSL -> Снимите флажок «Сканировать подключения SSL» , 

0
Tipxbomb

Порт 465 для "SMTP через SSL".

http://javamail.kenai.com/nonav/javadocs/com/Sun/mail/smtp/package-summary.html

[...] For example, use
    props.put("mail.smtp.port", "888");
to set the mail.smtp.port property, which is of type int.

Note that if you're using the "smtps" protocol to access SMTP over SSL, 
all the properties would be named "mail.smtps.*"
0
AnFi