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 не будет ничего делать с этими пользовательскими заголовками в любом случае.)

Здесь вы найдете реализацию техники VERP

Другие вопросы по тегам