VERP с JavaMail и Postfix, как?
Прежде всего, привет!
Я собираюсь разработать специальное приложение для рассылки новостей на Java с использованием API Javax.mail. Поэтому мне нужно разработать технику Verp для отслеживания отказов.
До сих пор я переопределил javax.mail.internet.MimeMessage Просто для обработки моих собственных заголовков почты.
class CustomMailMessage extends MimeMessage
...
public void setCustomHeader(key, value)
{
setHeader(key, value);
updateHeaders();
}
...
Так что это похоже на работу с любым заголовком, который я установил, кроме Return-Path.
...
setCustomHeader("Return-Path",verpAddr);
...
В результате сбоя VERP. Я должен отслеживать значение этого заголовка непосредственно до и после звонка
...
Transport.send(message);
...
и кажется, что значение такое же, как я его установил. Тем не менее, в полученной почте обратный путь изменяется на адрес отправителя (From:). в отличие от остальных заголовков, как они были установлены. Таким образом, уведомление о сбое доставляется отправителю, а не моему bounce+usermail=host@mydomain.com .
Я думаю, что этот сбой на сайте постфикса.
Обратите внимание, что сервер настроен Plesk, и мой домен.com размещен на моем сервере.
Поэтому я рад любому, кто может мне помочь. Или можете предоставить мне больше информации о том, как по-разному добиться техники Verp.
Спасибо заранее и ура!
2 ответа
Заголовок Return-Path устанавливается получателем, а не отправителем.
Вы хотите установить адрес "конверта из". Посмотрите javadocs для пакета com.sun.mail.smtp для свойства, чтобы установить, и видеть класс SMTPMessage как другой способ установить эту информацию.
Также обратите внимание, что вам не нужно создавать подкласс MimeMessage только для установки пользовательских заголовков. Вы можете вызвать метод setHeader напрямую, и updateHeaders будет вызван перед отправкой сообщения. (И updateHeaders не будет ничего делать с этими пользовательскими заголовками в любом случае.)