configurationsendmail以“example.com”发送电子邮件,但将实际的电子邮件转发到“example.com”到另一个服务器

由第三方设置的基于云的服务器使用sendmail进行电子邮件发送。

现在,sendmail已经被configuration为使得来自www-data@localhost [1]的电子邮件被发送为[email protected] 。 电子邮件通常会发送到第三方电子邮件,例如[email protected] (注意不同的目标域)。

但是,现在我们还需要发送电子邮件到[email protected] 。 试图这样做,但是,结果在550 5.1.1 <[email protected]>... User unknown

我严重的configurationsendmail的空白。

任何人都可以提供一些关于如何正确地做到这一点的指针?

[1]这是在/etc/apache2/sites-available/default定义的ServerAdmin名称


@MatHatter问:

“sendmail已被configuration为使得来自www-data @ localhost的电子邮件被发送为[email protected]”。 怎么样?

通过/etc/mail/sendmail.mc的以下几行:

 dnl # Replace sender's domain MASQUERADE_AS(`example.com')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl MASQUERADE_DOMAIN(`example.com')dnl 

(再说一遍,我不是那个制作sendmail.mc文件的人;如果有一定的线路可以找,我很乐意在这里发布)。


这里是附加信息:

 root@webserver:/etc/mail# grep '^Fw' sendmail.cf Fw/etc/mail/local-host-names %[^\#] root@webserver:/etc/mail# cat local-host-names localhost webserver 

example.com是否在本地电子邮件域名列表中列出? 要获取本地电子邮件域的列表,请以root身份执行以下命令:

 echo '$=w' | sendmail -Am -bt 

Sendmail默认将自动检测到的本地电子邮件域添加到/etc/mail/local-host-names列出的域。 可以使用sendmail.mc中的confDONT_PROBE_INTERFACESclosures它

 define(`confDONT_PROBE_INTERFACES',`True') 

sendmail.mc必须重新编译为sendmail.cf,必须重新启动sendmail守护程序或HUPed才能看到新的sendmail.cf。

谢谢你试图回答我的问题!

在这个周末,最初设置服务器的人最后修改了sendmail.mc (我今天早上才收到他的邮件):

  • 删除以下行:
 define(`confDOMAIN_NAME', `example.com')dnl 
  • 在之前发布的4行之后添加一行:
 MASQUERADE_AS(`example.com')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl MASQUERADE_DOMAIN(`example.com')dnl define(`MAIL_HUB', `mailgw.example.com.')dnl 

现在,发送到@example.com电子邮件将正确路由到服务@example.com的实际邮件服务器。

感谢您的帮助,伙计们!