我已按如下方式更改了 /etc/hosts 文件,添加了第二行:
127.0.0.1 localhost
127.0.0.1 myservername.mydomain.com myservername
我还将 myservername.mydomain.com 添加到 /etc/mail/local-host-names 文件中
我现在可以按如下方式发送电子邮件(以用户“Me”身份登录 Linux)
Me@myservername:~$ mail [email protected]
Cc:
Subject: test
test
<ctrl-d>
Me@myservername:~$
邮件被发送至[电子邮件受保护],出发/返回地址为:
From: [email protected]
发送到域 @myservername.mydomain.com 的邮件会正确转发到此 Linux 机器。
但是,当我尝试回复时,我收到以下错误,而不是将邮件发送到用户“我”邮箱:
: RCPT TO:<[email protected]>
Remote server replied: 550 5.1.1 <[email protected]>... User unknown
有趣的是,我可以发送邮件至[电子邮件受保护]成功了,但是[电子邮件受保护]550 用户未知的错误
因此,也许我缺少一个步骤,允许将入站电子邮件传递给除 root 之外的其他本地用户?事实证明,我实际上可以将邮件发送给任何其他用户定义的人,但不能发送给“我”
答案1
好吧,我可以回答我自己的问题:我上面给出的例子并不完全准确,掩盖了问题。我将示例“me”替换为用户 ID,并使用了虚构的域名。事实证明,真正的用户 ID 是大小写混合的 - 它包含一些大写字母。 Sendmail 显然不支持将邮件发送到其中包含大写字符的本地用户 ID。这是有道理的 - Linux 非常区分大小写,我相信您可以创建一个用户“User”和一个用户“user”,这些是不同的用户。然而,SMTP 地址通常不区分大小写,因此我猜测 sendmail 只是将用户部分小写并查找匹配的 Linux 用户。由于没有找到这个小写用户,因此报告了 550 错误 - User Unknown。在发现我不仅可以向 root 发送邮件,还可以向我的盒子上定义的任何其他用户发送邮件后,我发现了这一点,只是不能向我使用的默认管理员 ID 发送邮件。实际上,我将编辑上面的问题以将用户中的字母大写,并更改问题标题。