Dor*_*ron 5 ubuntu sendmail hosts ubuntu-9.10
我正在我的 ubuntu 9.10 机器上开发 web (php)。
我使用它 sendmail 发送邮件,在我的本地机器上开发时,我发送本地邮件(给我的用户“doron”)。
直到几天前,我还能够从 php 的 mail() 函数和使用 mail 命令的命令行发送邮件。
我正在将 sendmail 与 mailutils 一起使用。
从最近几天开始,它似乎停止了工作。
当我尝试从命令行发送邮件时,我在系统日志(以及 mail.info 和 mail.log)中得到以下信息:
Mar 3 13:27:58 doron-desktop sendmail[4693]: o23BRwlA004693: from=doron, size=84, class=0, nrcpts=1, msgid=<201003031127.o23BRwlA004693@doron-desktop.>, relay=doron@localhost
Mar 3 13:27:58 doron-desktop sm-mta[4694]: o23BRwtQ004694: ruleset=check_rcpt, arg1=<doron@doron-desktop>, relay=localhost [127.0.0.1], reject=553 5.1.8 <doron@doron-desktop>... Domain of sender address doron@doron-desktop does not exist
Mar 3 13:27:58 doron-desktop sendmail[4693]: o23BRwlA004693: to=<doron@doron-desktop>, ctladdr=doron (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30084, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.8, stat=User unknown
Mar 3 13:27:58 doron-desktop sm-mta[4694]: o23BRwtQ004694: from=<doron@doron-desktop>, size=84, class=0, nrcpts=0, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Run Code Online (Sandbox Code Playgroud)
尝试在本地 telnet 到端口 25 会导致以下结果(doron@doron-desktop 的输出相同):
doron@doron-desktop:/var/mail$ telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 doron-desktop. ESMTP Sendmail 8.14.3/8.14.3/Debian-9ubuntu1; Wed, 3 Mar 2010 13:26:06 +0200; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
helo localhost
250 doron-desktop. Hello localhost [127.0.0.1], pleased to meet you
mail from: doron@localhost
250 2.1.0 doron@localhost... Sender ok
rcpt to: root@localhost
553 5.1.8 root@localhost... Domain of sender address doron@doron-desktop does not exist
Run Code Online (Sandbox Code Playgroud)
但是 - 如果我也这样做,但在邮件来自字段中使用 doron@127.0.0.1,我会得到:
250 2.1.5 root... Recipient ok
Run Code Online (Sandbox Code Playgroud)
我的 /etc/hosts 文件:
127.0.0.1 localhost
127.0.1.1 doron-desktop doron-desktop.
Run Code Online (Sandbox Code Playgroud)
(如果我没有“doron-desktop”。(带有结尾点),邮件命令需要很长时间(大约 30 秒)才能响应,但结果是一样的。)
我相信您需要将主机文件更改为:
127.0.0.1 localhost
127.0.0.1 doron-desktop
Run Code Online (Sandbox Code Playgroud)
127.0.1.1 是随 Ubuntu Edgy 引入的。但某些应用程序会查找与 127.0.1.1 匹配的主机名。Sendmail 就是这样的应用程序之一。如果您想坚持使用新标准,可以保留 127.0.1.1,但请务必添加 127.0.0.1 doron-desktop。
另请注意错误日志中的以下内容:
ruleset=check_rcpt
Run Code Online (Sandbox Code Playgroud)
之后您会被告知您的 doron-desktop 域不存在。有不同的文件允许您设置域名。尝试在以下区域设置域名:
/etc/hosts
/etc/resolv.conf
sendmail conf files
Run Code Online (Sandbox Code Playgroud)
您绝对需要让 sendmail 相信您有一个域名并且它是 FQDN(即使不是)。如果您有注册使用的域名(在您的主机文件中):
doron-desktop.somedomain.com
Run Code Online (Sandbox Code Playgroud)
服务器不会关心公共 DNS 是否指向您的台式计算机。话虽这么说,您发送电子邮件的电子邮件服务器也可能(或将会)关心您的桌面服务器正在代表您在主机文件中放入的任何域名发送电子邮件,并且可能会阻止电子邮件、退回电子邮件或将其列入黑名单(如果您只是进行测试,则不会发生黑名单 - 您需要发送数千个测试)。
| 归档时间: |
|
| 查看次数: |
2269 次 |
| 最近记录: |