0

我正在尝试将 Request-Path 标头与 PHPmail()函数一起使用,但它不起作用。Return-Path 不断更改为 From 标头。

通过谷歌搜索,我找到了有用的技巧,但没有一个对我有用,尽管我学到了很多东西。

这是我正在使用的非常简单的代码:

$headers ='From: "Marty"<from_param@gmail.com>'."\r\n";
//$headers .='Return-Path: return_path@gmail.com'."\r\n";
$headers .='Reply-To: reply_to@gmail.com'."\r\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
$headers .='Content-Transfer-Encoding: 8bit';

$returnPath = '-freturn_path@gmail.com';

if (mail('goldorak_loves_albator@gmail.com', 'My subject', 'My body', $headers, $returnPath)) {
    echo 'Message sent';
} else {
    echo 'Message not sent';
}

这是我迄今为止尝试过的:

  • 在标题中使用\n\r\n作为换行符
  • $header字符串中的返回路径
  • Return-Path 作为mail()函数的第 5 个参数
  • 带有返回路径 in$headers和 in$returnPath
  • $returnPath变量后面有和没有空格-f
  • with -rin the $returnPath, 有和没有空格, 有和没有-f

正如我所读到的,exim 配置可能存在一些问题,它替换了 PHP 用户的 Return-Path。但这不是这里的情况,因为它被From标题所取代。

我几乎可以肯定这是一个配置问题,因为这段代码非常简单,但我找不到任何有用的东西......

谢谢您的帮助 !

编辑:我们不在我们的 Linux 服务器上使用 Exim,所以问题不来自那里。我尝试使用 SwiftMailer 实现相同的目标,但无济于事。Return-Path 仍然被忽略....

require('swift/lib/swift_required.php');

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
->setUsername('username@gmail.com')
->setPassword('myPassword');

$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Wonderful Subject')
->setTo(array('goldorak_loves_albator@gmail.com'))
->setFrom(array('from@gmail.com' => 'Myself'))
->setReturnPath('return_path@gmail.com')
->setBody('Here is the message itself')
;

// Send the message
$result = $mailer->send($message);

这直接取自 SwiftMailer 示例。

4

0 回答 0