它看起来像是您的信封“发件人”地址。信封“发件人”地址与电子邮件的“发件人:”标头中显示的地址不同。这是 sendmail 在与接收邮件服务器的“MAIL FROM/RCPT TO”交换中使用的内容。它被称为“信封”地址的主要原因是它出现在邮件头和正文之外,在邮件服务器之间的原始SMTP交换中。www-data@Name
unix上的默认信封“from”地址取决于您使用的sendmail实现。但通常将其设置为正在运行的进程的用户名,后跟“@”和计算机的主机名。在典型配置中,这看起来像 。username@example.com
如果您的电子邮件被接收邮件服务器拒绝,或者您需要更改退回邮件发送到的地址,则可以更改信封“发件人”地址以解决您的问题。
要更改 unix 上的信封“发件人”地址,请为 sendmail 二进制文件指定一个“-r”选项。您可以在php中全局执行此操作.ini方法是将“-r”选项添加到“sendmail_path”命令行。您也可以在 PHP 中以编程方式执行此操作,方法是将附加参数参数传递给 mail() 函数(第 5 个参数)。如果在两个位置都指定了地址,则 sendmail 二进制文件将使用两个“-r”选项进行调用,这些选项可能具有未定义的行为,具体取决于您的 sendmail 实现。使用Postfix MTA,后面的“-r”选项以静默方式覆盖早期的选项,从而可以设置全局默认值,并且在尝试在本地覆盖它时仍然可以获得明智的行为。-r mail@smartrek.blah.me
编辑
关于可以传递给 sendmail 的可选标志:将设置 From 地址,将覆盖 sendmail 生成的默认 Return 路径(通常使用 From 地址)。如果您希望退回邮件转到与发件人地址不同的地址,请尝试同时使用这两个标志:-f
-r
-f mail@smartrek.blah.me -r bounced-mail@smartrek.blah.me
我的 php.ini
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On
; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =