第三方设置的基于云的服务器正在使用 sendmail 发送电子邮件。
现在,sendmail 已配置,以便来自www-data@localhost
[1] 的电子邮件将作为 发送[email protected]
。例如,这些电子邮件大多发送到第三方电子邮件[email protected]
(注意不同的目标域)。
但是,现在我们还需要发送电子邮件至[email protected]
。但是,尝试这样做会导致。550 5.1.1 <[email protected]>... User unknown
我对配置 sendmail 严重茫然。
有人能提供一些关于如何正确做到这一点的指点吗?
[1] 这ServerAdmin
是/etc/apache2/sites-available/default
@MadHatter 询问:
“sendmail 已配置,以便来自 www-data@localhost 的电子邮件作为[电子邮件保护]“。具体怎么做呢?
我思考通过以下几行/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
答案1
是否example.com
列在本地电子邮件域列表中?要获取本地电子邮件域列表,请以 root 身份执行以下命令:
echo '$=w' | sendmail -Am -bt
Sendmail 默认将自动检测到的本地电子邮件域添加到 列出的域中/etc/mail/local-host-names
。可以使用以下命令关闭它confDONT_PROBE_INTERFACES在 sendmail.mc 中
define(`confDONT_PROBE_INTERFACES',`True')
sendmail.mc 必须重新编译为 sendmail.cf,并且必须重新启动 sendmail 守护进程或者执行 HUP 才能查看新的 sendmail.cf。
答案2
感谢您尝试回答我的问题!
周末,最初设置服务器的人终于做了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
。
谢谢大家的帮助!