Задать вопрос
@stas1212

Как получить фактический ответ от SMTP?

Добрый день, подскажите пожалуйста кто сталкивался.
Есть SMTP сервер и есть java приложение.
Отравляется письмо из приложения используя стандартную библиотеку javax.mail

SMTPTransport transport = (SMTPTransport) session.getTransport("smtp");
transport.sendMessage(message, InternetAddress.parse(address));
var i1 = transport.getLastReturnCode();
var i2 = transport.getReportSuccess();
return transport.getLastServerResponse();

и и есть логи самого постфикса
например я отсылаю сообщение
в логах постфикса status=deferred
а в ответе transport.getLastServerResponse(); --> 250 2.0.0 Ok: queued as 3AE1682775

а должен получать совсем другой код- ведь письмо отложено и его нужно перепослать еще раз, а я вижу код 250 и для системы письмо послано....

Подскажите как взять реальный статус письма используя java( можно любую либу или фреймворк)
  • Вопрос задан
  • 214 просмотров
Подписаться 1 Простой 13 комментариев
Пригласить эксперта
Ответы на вопрос 1
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
и для системы письмо послано....

А для нее оно и послано. postfix поставил письмо во внутреннюю очередь обработки и обработает его - как полагается по протоколу SMTP. Вы спецификацию протокола-то почитайте сначала, прежде чем проектировать вещи, которые не сможете реализовать.
SMTP - протокол старый и рассчитан он на доставку в течение 5 суток. Пяти суток, Карл! Все это время письмо будет нажодиться в очереди и будет оно там совершенно легитимно, и только по прошествии этого времени postfix с сожалением выкинет его из очереди. С чего Вы решили, что вообще письмо должно быть доставлено мгновенно?

(Да, у не-технарей есть такое - они почему-то считают, что почта обязана доставляться мгновенно. Ага, щазз. )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы