У меня проблема с Sendmail (у меня 8.14.7 на RedHat Enterprise Linux 7) в этой почте, отправляемой локально сценариями на сервере, изменяется имя домена. У меня domain1.com domain2.com и domain3.com. Когда почта отправляется локальным скриптом для user@domain2.com, она изменяется на user@domain1.com. Все остальное работает нормально. Входящая почта из Интернета на адрес user@domain2.com идет на user@domain2.com. Я использую определения virtusertable, которые работают нормально. Я читал, что submit.mc - это то, что управляет отправкой локальной почты, а не sendmail.mc. Может ли кто-нибудь просмотреть мой submit.mc ниже и узнать, есть ли у меня ошибка или что-то не хватает?
divert(-1)
#
# Copyright (c) 2001-2003 Sendmail, Inc. and its suppliers.
# All rights reserved.
#
# By using this file, you agree to the terms and conditions set
# forth in the LICENSE file which can be found at the top level of
# the sendmail distribution.
#
#
#
# This is the prototype file for a set-group-ID sm-msp sendmail that
# acts as a initial mail submission program.
#
divert(0)dnl
sinclude(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`linux setup')dnl
define(`confCF_VERSION', `Submit')dnl
define(`__OSTYPE__',`')dnl dirty hack to keep proto.m4 from complaining
define(`_USE_DECNET_SYNTAX_', `1')dnl support DECnet
define(`confTIME_ZONE', `USE_TZ')dnl
define(`confDONT_INIT_GROUPS', `True')dnl
dnl # If you're operating in a DSCP/RFC-4594 environment with QoS
dnl define(`confINET_QOS', `AF11')dnl
define(`confPID_FILE', `/run/sm-client.pid')dnl
dnl define(`confDIRECT_SUBMISSION_MODIFIERS',`C')dnl
FEATURE(`use_ct_file')dnl
dnl
dnl If you use IPv6 only, change [127.0.0.1] to [IPv6:::1]
FEATURE(`msp', `[127.0.0.1]')dnl
Я теперь добавляю пример почтового журнала для этой ошибки ниже:
Oct 22 10:25:59 domain1 sendmail[3126]: x9MHPxwE003126: from=joe, size=220, class=0, nrcpts=1, msgid=<201910221725.x9MHPxwE003126@domain1.com>, relay=joe@localhost
Oct 22 10:25:59 domain1 sendmail[3129]: x9MHPx3O003129: from=<joe@domain1.com>, size=457, class=0, nrcpts=1, msgid=<201910221725.x9MHPxwE003126@domain1.com>, proto=ESMTP, daemon=MTA, relay=localhost [127.0.0.1]
Oct 22 10:25:59 domain1 sendmail[3126]: x9MHPxwE003126: to=admin@domain2.com, ctladdr=joe (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30220, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (x9MHPx3O003129 Message accepted for delivery)
Oct 22 10:26:00 domain1 sendmail[3130]: x9MHPx3O003129: to=<admin@domain1.com>, ctladdr=<joe@domain1.com> (1003/1003), delay=00:00:01, xdelay=00:00:01, mailer=local, pri=30659, dsn=2.0.0, stat=Sent
virtusertable
только перенаправляет входящую электронную почту. Он перезаписывает адрес получателя конверта.
Вы можете использовать genericstable
в sendmail.cf
для «полной» перезаписи другого адреса (отправителя конверта, отправителя заголовка и получателя хейдера).