Sendmail 通过发送到智能主机来工作,但无法找到本地用户。
# sendmail -bv [email protected]
[email protected]... User unknown
# grep LocalUser /var/log/maillog
Sep 8 03:48:30 myhost sendmail[6678]: r887mUs3006678: [email protected]... User unknown
但 ...
# ls /home|grep LocalUser
/LocalUser
和 ...
# grep LocalUser /etc/passwd
LocalUser:x:1001:1001:LocalUser:/home/LocalUser:/bin/bash
如何配置 sendmail 来查找本地用户?我应该如何诊断这个问题?
答案1
Sendmail 和大写字母的本地用户
诊断
Sendmail 的默认配置在尝试发送之前将本地用户/邮箱名称转换为全部小写字母。在您的情况下,电子邮件将[email protected]
通过 sendmail 发送到不存在的localuser
而不是现有的LocalUser
。
可能的修复
不要使用大写字母的用户名
或者
指定唯一正确的大写和小写混合(fox 只给出小写字符串)。它需要修改sendmail.mc
和aliases
文件。
http://www.sendmail.org/faq/section4.html#4.17
主题:Q4.17 -- 如何处理包含大写字符的用户名?
sendmail.mc 文件(需要重新编译成 sendmail.cf 文件):
MODIFY_MAILER_FLAGS(`LOCAL', `+u')dnl
别名文件(需要使用newaliases
命令重新编译):
# lowercase version to real for accounts with uppercase letters
localuser: LocalUser