Как установить Обратный тракт к адресу электронной почты кроме использования адреса Отправителя JavaMail?

Перед попыткой двойной буферизации посмотрите, решают ли SuspendLayout ()/ResumeLayout () проблему.

17
задан KB22 23 November 2009 в 11:50
поделиться

1 ответ

Приведенный ниже код делает то, что вы хотите, и делает это правильно. Перечитайте то, что вы сами написали в комментарии

From: RFC2821: 4.4 Trace Information

Когда SMTP-сервер доставки делает "окончательная доставка" сообщения, это вставляет линию обратного пути в начало почтовых данных. Это использование обратного пути не требуется; почта системы ДОЛЖНЫ поддерживать это. В линия обратного пути сохраняет информация в из команды MAIL. Здесь финал доставка означает, что сообщение ушло среда SMTP. Обычно это будет означать, что он был доставлен конечный пользователь или связанный сброс почты, но в некоторых случаях это может быть далее обрабатываются и передаются другая почтовая система.

и несколькими строчками позже.

SMTP-система, отправляющая сообщения НЕ СЛЕДУЕТ отправлять сообщение, которое уже содержит заголовок Return-path.

Если вы внимательно его прочитаете, то поймете, что только последний smtp-сервер / агент доставки должен добавлять заголовок Return-Path . Это не то, что вы как клиент (пытаетесь отправить письмо) должны делать. Последний smtp-сервер основывает заголовок Return-Path на адресе отправителя конверта (часть SMTP MAIL FROM ).

Таким образом, устанавливается mail.smtp. from - это правильный способ указать Java, что адрес отправителя конверта должен отличаться от части из .

Если у вас проблемы с пониманием того, чем отличается от просто взгляните на smtp-сессию telnet. Где replyto@example.com должен соответствовать smtp.mail.from и from@example.com в m.addFrom (...);

telnet smtp.example.com 25 
220 smtp.example.com ESMTP .....

helo computername
250 smtp.example.com Hello computername [123.123.123.123]

mail from:<replyto@example.com>
250 <replyto@example.com> is syntactically correct

rcpt to:<rcpt@foo.com>
250 <rcpt@foo.com> verified

data
354 Enter message, ending with "." on a line by itself
To: Joey <to@joey.com>
From: Joey <from@example.com> 
Subject: Joey

Hey Joey!

.
250 OK id=....

Quit

props.put("mail.smtp.from", "replyto@example.com");
Session session = Session.getDefaultInstance(props, null);
MimeMessage m = new MimeMessage(session);
m.addFrom(InternetAddress.parse("from@example.com"));
24
ответ дан 30 November 2019 в 12:20
поделиться
Другие вопросы по тегам:

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