-1

我在自己的服务器上安装了一个 SMF 论坛。但是由于某种我无法找到的原因,SMF 发送电子邮件以进行新用户激活,而没有任何“发件人”电子邮件地址,就像“apache”一样。显然,大多数电子邮件服务器不允许这样做,并且永远不会收到电子邮件。

我收到以下后缀消息到我的 postmaster 帐户。

<email@dest.example.com>: host dest.example.com[255.255.255.255] said: 501
<apache>: sender address must contain a domain (in reply to MAIL FROM
command)

Reporting-MTA: dns; my.example.com
X-Postfix-Queue-ID: 62653A403D7
X-Postfix-Sender: rfc822; apache
Arrival-Date: Sat, 13 Jul 2013 01:44:57 +0200 (CEST)

Final-Recipient: rfc822; email@dest.example.com
Action: failed
Status: 5.0.0
Remote-MTA: dns; dest.example.com
Diagnostic-Code: smtp; 501 <apache>: sender address must contain a domain

Return-Path: <apache>
Received: by my.example.com (Postfix, from userid 48)
    id 62653A403D7; Sat, 13 Jul 2013 01:44:57 +0200 (CEST)
To: email@dest.example.com
Subject: EXAMPLE TITLE
X-PHP-Originating-Script: 48:Subs-Post.php
From: "MY PAGE TITLE" <noreply@my.example.com>
Date: Fri, 12 Jul 2013 23:44:57 -0000
X-Mailer: SMF
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="SMF-2b3ce4fbf69b6d2e40cb7c5b15d5a97c"
Content-Transfer-Encoding: 7bit
Message-Id: <20130712234457.62653A403D7@my.example.com>

我认为问题可能是:

  1. 缺少 php/apache/postfix 的某些配置。
  2. SMF 需要一些额外的配置或有错误。
  3. 还有其他想法吗?

PS:SMF 配置为通过 PHP(不是 SMTP)发送电子邮件

知道如何解决这个问题吗?

编辑:遵循 SMTP 通信。

 In:  220 server.domain.com ESMTP Exim 4.69 Fri, 26 Jul 2013 12:51:21 -0400
 Out: EHLO my.example.com
 In:  250-server.domain.com Hello my.example.com [79.143.177.174]
 In:  250-SIZE 20971520
 In:  250-PIPELINING
 In:  250-AUTH PLAIN LOGIN
 In:  250-STARTTLS
 In:  250 HELP
 Out: MAIL FROM:<apache>
 Out: RCPT TO:<email@dest.example.com>
 Out: DATA
 In:  501 <apache>: sender address must contain a domain
 In:  503 sender not yet given
 In:  503-All RCPT commands were rejected with this error:
 In:  503-503 sender not yet given
 In:  503 Valid RCPT command must precede DATA
 Out: RSET
 Out: QUIT
 In:  250 Reset OK
4

1 回答 1

1

您的发件人是apache,因为您的网络服务器与该本地用户一起运行。

为确保您的论坛发送来自明确发件人的邮件,您可以将此信息添加到您的php.ini

sendmail_path = /usr/sbin/sendmail -t -i -F 'noreply@domain.tld' -f 'forum registration <noreply@domain.tld>'

-F => 发件人姓名 -f => 来自标头

于 2013-07-25T18:30:28.327 回答