sendmail 配置停止本地投递

sendmail configuration to stop local delivery

我已经在我的 CentOs 6.4 中配置了 sendmail。使用当前配置我可以发送邮件,但问题是@domain.com.

这样的地址

我的场景是这样的。 服务器1:xyz.com(包含http,域名面板也点这个) 服务器2:test.xyz.com(包含sendmail配置)

此 xyz.com 已在域面板中分配,并为测试创建了一条记录。xyz.com。现在我已经在服务器 2 中配置了 sendmail,它可以将所有邮件发送到外部,但是当我使用像 user@xyz.com 这样的地址时,它会在本地发送邮件。实际上我已经为 @xyz.com 这样的地址设置了 google 邮件服务器,并且为相同的地址添加了所需的 MX 记录。

我想将所有邮件从服务器 2 传送到我的 google 服务器。请帮我解决这个问题。我也很感谢你。

我的sendmail.mc是,

divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
define(`SMART_HOST', `mailout.serverpronto.com')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
FEATURE(`accept_unresolvable_domains')dnl
MASQUERADE_AS(`xyz.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(xyz.com)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
define(`MAIL_HUB', `xyz.com')dnl
define(`LOCAL_RELAY', `xyz.com.')dnl

我在这上面花了很多时间,但这两条线最终帮我解决了。难道你的 LOCAL_RELAY 参数中有点 (.)?

define(`MAIL_HUB', `xyz.com')dnl
define(`LOCAL_RELAY', `xyz.com')dnl

更新。 所以看来您必须伪装您的域。

Reference

我认为这意味着您应该:

MASQUERADE_AS(`xyz.com')

MASQUERADE_DOMAIN(`test.xyz.com')

尝试一下所有这些选项,看看会发生什么。

通常,您的服务器会指向某个域名,因此当您将任何邮件发送到地址为 @domain.com 时,它总是会在本地投递。

  1. 你可以从here得到我的sendmail.mc。
  2. vim /etc/mail/sendmail.mc 复制粘贴
  3. 将您的域替换为 "domain.com",并将您的 SMART HOST 服务器地址替换为 "host.domain.com"
  4. 回声 '$=w' |发送邮件-bt
  5. 在此处检查您的域(即 domain.com 或邮件 ID 用户。domain.com)不在条目中。它将邮件发送到主机在此处显示的本地客户端。因此,如果 domain.com 显示在这里,那么所有 @domain.com 都将在本地交付。
  6. 要更改主机名,请检查 /etc/hosts/(如果只有 domain.com 则更改。它应该是邮件。domain.com 或您提到的任何邮件服务器名称或主机名)
  7. 检查 /etc/mail/local-host-names(如果有条目则为空),检查 /etc/sysconfig/network(主机名不应 domain.com)
  8. 键入 "hostname",您应该会收到邮件。domain.com 或其他但不会 domain.com。如果是,则输入 "hostname mail.domain.com"
  9. /etc/init.d/network 重启
  10. sudo make -C /etc/mail
  11. 服务 sendmail 重启
  12. 再次确认本地发货列表,echo '$=w' |发送邮件-bt