Не удается подключиться к проблемам SMTP - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь создать автоматическую отправку почты с использованием Java, но при создании проектов возникает ошибка.Вот код:

package sendmail2;

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.internet.MimeMessage;

public class SendMail2 {

    public static void main(String[] args) {
        try{
            String host ="smtp.gmail.com" ;
            String user = "myemail@gmail.com";
            String pass = "mypassword";
            String to = "my reciever";
            String from = "myemail@gmail.com";
            String subject = "Test App";
            String messageText = "Congrats";
            boolean sessionDebug = false;

            Properties props = System.getProperties();

            props.put("mail.smtp.starttls.enable", "true");
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.port", "587");
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.starttls.required", "true");

            java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
            Session mailSession = Session.getDefaultInstance(props, null);
            mailSession.setDebug(sessionDebug);
            Message msg = new MimeMessage(mailSession);
            msg.setFrom(new InternetAddress(from));
            InternetAddress[] address = {new InternetAddress(to)};
            msg.setRecipients(Message.RecipientType.TO, address);
            msg.setSubject(subject); msg.setSentDate(new Date());
            msg.setText(messageText);

           Transport transport=mailSession.getTransport("smtp");
           transport.connect(host, user, pass);
           transport.sendMessage(msg, msg.getAllRecipients());
           transport.close();
           System.out.println("message send successfully");
        }
        catch(Exception ex)
        {
            System.out.println(ex);
        }
    }
}

Ошибка:

javax.mail.MessagingException: Не удалось подключиться к узлу SMTP: smtp.gmail.com, порт: 587;Вложенное исключение: java.net.ConnectException: истекло время ожидания соединения: connect BUILD SUCCESSFUL (общее время: 21 секунда)

Я уже добавляю Activation.jar, а также mail.jar в библиотеке.и включите менее безопасный доступ к приложениям в учетной записи Gmail.

Вопрос в том, что я не знаю, работает ли мой код или что-то не так, и как это сделать, и решения, как это сделать.

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

1 Ответ

0 голосов
/ 04 марта 2019

Часто задаваемые вопросы по JavaMail содержат советы по устранению проблем с подключением .

Скорее всего, существует брандмауэр, не позволяющий подключиться напрямую.В FAQ по JavaMAil также описывается, как подключаться через прокси-сервер .

...