Проблема с тайм-аутом при попытке отправить электронное письмоJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с тайм-аутом при попытке отправить электронное письмо

Сообщение Anonymous »

У меня возникает проблема с тайм-аутом, когда я пытаюсь отправить электронную почту, используя самую последнюю версию Java-почтового API. адрес электронной почты действителен, как и пароль. Я использую адрес электронной почты Gmail в качестве учетной записи отправителя и разрешил доступ к менее защищенным учетным записям. проблема в строке 24, где написано tr.send(message). Я не получаю ошибку. программа просто перестает отвечать на запросы. Сообщение даже не попадает в мою папку. Я думаю, что это может быть связано с оператором import javax.activation.*;, который, по словам Intellij, является неиспользуемым оператором импорта. Я добавил его в библиотеку своего проекта, когда добавил API почты Java. Нужно ли мне добавить его в файл pom.xml?
Я попробовал прочитать этот ответ. Отправка электронного письма с вложением с помощью API Javamail
и посмотрел это видео
Отсюда я взял большую часть своей программы.

Код: Выделить всё

public class AutomatedEmails {

@FXML
private TextField email;
@FXML
private TextField name;
private String host = "smtp.gmail.com";
private String user = "[email protected]";
private String emailPassword = "password";
private String TO = "";
private String FROM = "[email protected]";
private String subject = "hello";
private String messageText = "hello";

Properties props = System.getProperties();

public AutomatedEmails() throws IOException, MessagingException {

}

public void sendWelcomeEmail(RegisterController registerController) throws MessagingException {

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.port", "587");

TO = registerController.getEmail();

Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(FROM, emailPassword);
}
});

Message message = prepareMessage(session, FROM, TO);

System.out.println("working still");
// this prints
Transport tr = session.getTransport("smtps");
tr.connect(host, FROM, emailPassword);

Transport.send(message);
tr.close();
System.out.println("message sent successfully");
// this doesn't print
}
public Message prepareMessage(Session session, String FROM, String TO){
try{
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(FROM));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
message.setSubject(subject);
((MimeMessage) message).setText(messageText);
return message;
} catch (Exception e){
Logger.getLogger(AutomatedEmails.class.getName()).log(Level.SEVERE, null, e);
}
return null;
}
}
Идея состоит в том, что электронное письмо будет отправлено зарегистрированному пользователю. Вместо этого есть просто тайм-аут без отправки электронного письма. Мне интересно, связано ли это с неиспользованным импортом. Нужно ли мне что-то добавлять в файл pom.xml? Или измените мой код. Использование Mac.

Подробнее здесь: https://stackoverflow.com/questions/554 ... d-an-email
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»