Иногда не мог подключиться к хосту, порт: smtp.office365.com, 587; Тайм -аут -1;JAVA

Программисты JAVA общаются здесь
Anonymous
Иногда не мог подключиться к хосту, порт: smtp.office365.com, 587; Тайм -аут -1;

Сообщение Anonymous »

Я использую org.springframework.mail.javamail.javamailsender для отправки электронных писем через smtp.office365.com. Он работает большую часть времени, но иногда электронные письма не отправляются из -за проблемы с подключением. SMTP.Office365.com имеет предел 30 сообщений в минуту. В среднем в дневное время моя служба отправляет одно электронное письмо за 5 минут, каждый раз, чтобы точно получить то же самое. Так что я не думаю, что превышаю предел. Тем не менее я получаю следующую ошибку время от времени, например, один раз примерно каждые 10 минут: < /p>

орг.springframework.mail.mailsendexception: соединение почтового сервера
не удалось; Вложенное исключение - com.sun.mail.util.mailconnectexception:
не может подключиться к хосту, порт: smtp.office365.com, 587; Тайм -аут -1; < /p>
< /blockquote>
К сожалению, отладка не предоставляет более подробную информацию. Например, я хотел бы посмотреть, какой IP -адрес он пытается подключиться, но он не показывает мне. Может быть, у меня слишком много соединений. Может быть, Javamailsender - багги. Или может быть SMTP.Office365.com - очень плохой сервис. Или может быть мой код Buggy?

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

spring:
mail:
host: smtp.office365.com
port: 587
username: info@example.com
password: password
protocol: smtp
properties:
mail.smtp.auth: true
mail.smtp.starttls.enable: true
и следующая «служба», которая на самом деле не аннотируется как служба, SimpleMailService.java , немного упрощено;

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

@Component
@RequiredArgsConstructor
public class SimpleEmailService {

private final JavaMailSender emailSender;

@Async
@SneakyThrows
public void sendTemplatedMessage(EmailHtmlNotification emailNotification) {
MimeMessagePreparator messagePreparator = mimeMessage -> {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
messageHelper.setTo(emailNotification.getToEmails().toArray(new String[]{}));
messageHelper.setFrom("info@example.com");
messageHelper.setSubject(emailNotification.getSubject());
String messageContent = getMessageFromTemplate(emailNotification.getEmailTemplates(), emailNotification.getBodyParameters());
messageHelper.setText(messageContent, true);
};
emailSender.send(messagePreparator);
}

}
. Подводя итог, он отправляет электронные письма большую часть времени, но часть времени у него есть тайм -ауты, и, таким образом, некоторые из электронных писем не доставляются в SMTP.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... -timeout-1

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