Ваша первая попытка была корректна; 2>filename
то, как Вы перенаправляете stderr. Может иметь место, что Ваша программа пишет некоторые неошибки в stderr, или программа Java запускает другие программы, которые производят к stderr.
-O MyHostName = ABC не очень важно. Чтобы повлиять на HELO, вы должны переопределить -o SMTP_HELO_NAME = ABC
Значения, настроенные в main.cf, обладают сложным наследством, но он работает только на Main.cf загрузки. Когда вы отменяете некоторые параметры последнего, вам нужно переопределить все необходимое.
На данный момент я не знаю, как заставить PostFix отправлять почту от домена над правильным работником, но я думаю, что это возможно.
UPD.
-O SMTP_HELO_NAME = PERFORCE HELO FQDN. Дополнительно вам нужно определить соответствующий A (в вашей доменной зоне) и PTR (в обратной зоне ISP или DataCenter или собственные, если у вас есть) записи для вашего сервера.
Пример: -O SMTP_HELO_NAME = mailserver.abc.com
Ваша доменная зона ABC.com
mailserver A 203.0.113.23
ZP ZONE 113.0.203.IN-ADDR.ARPA
23 PTR mailserver.abc.com
Не нужно соответствовать домену FQDN и почта, это может быть разным. Primary, Helo FQDN разрешаемо для IP и IP Resolverable на FQDN
$ host mailserver.abc.com
mailserver.abc.com has address 203.0.113.23
$ host 203.0.113.23
23.113.0.203.in-addr.arpa domain name pointer mailserver.abc.com
Если вам нужен отдельный myhostname
, то вас может заинтересовать Postfix Multipe Instance , см. Официальную документацию здесь .
Благодаря этой функции каждый экземпляр получит один IP-адрес и один параметр myhostname
. И поскольку значение по умолчанию smtp_helo_name
было myhostname
, то ваше имя вертолета должно совпадать с вашим myhostname
.
Например, у вас есть два домена, xyz.example с IP-адресом 192.168.1.1 и abc.example с IP-адресом 10.10.0.2 (см. RFC 2606 раздел 2 ). Примечание. Это короткое руководство было выполнено для CentOS 6.5
myhostname
mail.abc.example и inet_interface
10.10.0.2. smtpd _ * _ ограничений
. Создайте второй экземпляр с помощью инструмента postmulti
.
postmulti -e init
это вставит конфигурацию multi_instance_
в main.cf
postmulti -I postfix-secondary -e create
будет создан новый экземпляр с именем postfix-secondary
. Он создаст новый каталог конфигурации / etc / postfix-secondary
и другой каталог, такой как каталог спула и данных.
Второй экземпляр будет иметь конфигурацию по умолчанию. Вы должны скопировать конфигурацию в первый раз.Конечно, вы должны установить другое значение для этого параметра
queue_directory = / var / spool / postfix-secondary
data_directory = / var / lib / postfix-secondary
multi_instance_name = postfix-secondary
myhostname = mail.xyz.example
inet_interfaces = 192.168.1.1
Убедитесь, что параметр multi_instance_enable = yes
был указан во вторичном main.cf.
Готово. Обратитесь к документации, чтобы узнать о доступных командах для управления несколькими экземплярами postfix.
Примечания:
Использование нескольких экземпляров Postfix может показаться излишним для ваших нужд. Однако дает лучший уровень изоляции . Например: ваше сообщение о недоставке выше по-прежнему содержит информацию о mail.abc.example. При использовании нескольких экземпляров вы получите электронное письмо о недоставке от mail.xyz.example, если вы отправите его с экземпляра xyz.
Вам необходимо обслуживание обеих конфигураций, поскольку postfix не разделяет конфигурацию между двумя экземплярами.
Другое решение, предложенное mmv-ru, было достаточным, чтобы вы не выглядели спамером. Полное доменное имя сервера не имеет того же значения, что и smtp_helo_name. Просто убедитесь, что у вас есть правильная запись PTR для домена, указанного в smtp_helo_name :)