我有这个小脚本:
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: Admin <[email protected]>' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" ;
mail($to, $subject, $message, $headers, "[email protected]");
当我使用此日志向 gmail/yahoo/outlook/we 地址发送信息时,它工作正常:
Jun 2 18:18:27 beast postfix/pickup[5947]: 2E93F4060261: uid=1060 from=<[email protected]>
Jun 2 18:18:27 beast postfix/cleanup[8944]: 2E93F4060261: message-id=<20160602151827.random@myhostname>
Jun 2 18:18:27 beast postfix/qmgr[46425]: 2E93F4060261: from=<[email protected]>, size=364, nrcpt=1 (queue active)
Jun 2 18:18:27 beast postfix/smtp[10480]: connect to gmail-smtp-in.l.google.com[2a00:1450:4013:c01::1a]:25: Network is unreachable
Jun 2 18:18:27 beast postfix/smtp[10480]: 2E93F4060261: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[74.125.136.27]:25, delay=0.3, delays=0.01/0/0.06/0.23, dsn=2.0.0, status=sent (250 2.0.0 OK 1464880687 uk6si1260730wjc.239 - gsmtp)
Jun 2 18:18:27 beast postfix/qmgr[46425]: 2E93F4060261: removed
但是,如果我尝试向我自己的网站发送电子邮件(例如,[email protected]
我使用[email protected]
“我没有收到电子邮件”并且收到以下日志:
Jun 2 18:19:54 beast postfix/pickup[5947]: C208C4060261: uid=1060 from=<[email protected]>
Jun 2 18:19:54 beast postfix/cleanup[8944]: C208C4060261: message-id=<20160602151954.random@myhostname>
Jun 2 18:19:54 beast postfix/qmgr[46425]: C208C4060261: from=<[email protected]>, size=366, nrcpt=1 (queue active)
Jun 2 18:19:56 beast postfix/local[10994]: C208C4060261: to=<test.mysite@myhostname>, orig_to=<[email protected]>, relay=local, delay=2.1, delays=0.02/0/0/2, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME)
Jun 2 18:19:56 beast postfix/qmgr[46425]: C208C4060261: removed
知道我做错了什么吗?
答案1
此脚本所在的服务器的主机名是什么?您的邮件服务器的主机名是什么(如果不同)?如果它们属于同一个域,但实际上是 2 个不同的服务器,那么 Postfix 可能会“认为”发送到域名的电子邮件应该在本地传递 - 因此会忽略 MX 记录并执行此操作。
这就可以解释为什么电子邮件实际上并没有离开邮箱。
(您的日志确实表明该电子邮件正在本地传送)。