php - Postfix/PHP Mail() 使用相同的电子邮件地址发送电子邮件,忽略 header $from

标签 php email header postfix-mta

我们最近升级了网络服务器,我们遇到的第一个问题是发送到同一域时出现问题,因为该网站托管在与公司交换服务器不同的服务器上。无论如何,我修复了这是一些简单的配置更改并禁用域的邮件服务。

无论如何,这不起作用,但是当我在网站上测试一些 PHP 邮件表单时,我没有注意到它们都是作为我的电子邮件地址发送给客户的。

这是 PHP(我认为这不是问题)

<?php
    ini_set("sendmail_from", "noreply@******.com"); 

    $name       = $_POST['name'];
    $email      = $_POST['email'];
    $phone      = $_POST['phone'];
    $comments   = $_POST['comments'];
    $ip=$_SERVER['REMOTE_ADDR'];

    $recipient  = '*****@******.com';
    $subject    = "Comments submitted from the Contact Us form on www.wavesfm.com from $name" ;

    $message   = "This is an email submitted from the Contact Us form on the website www.*****.com containing details from $name \n";
    $message  .= "    \n";
    $message  .= "Name: $name \n";
    $message  .= "Email: $email \n";
    $message  .= "Phone Number: $phone \n";
    $message  .= "Comments: $comments \n\n\n";
    $message  .= "IP Address: $ip ";

    $headers   = "From: noreply@********.com \n";
    $headers  .= "Reply-To: $email";

    mail($recipient,$subject,$message,$headers);
    header( 'Location: http://www.*****.com/thanks.php' ) ; 
?>

任何人都可以看到该代码有任何问题吗?我尝试添加 -fnoreply@**.com 作为发送参数,但它不会更改我自己的电子邮件地址,使其不再显示为发件人。

我不认为这是一个 PHP 问题,它看起来更像是一个 Postfix 问题,但真正困扰我的是我的电子邮件地址(未在任何地方使用)如何显示为发件人。

以前有人有过这方面的经验吗?和两周前一样,我根本没有使用过 Postfix,所以它对我来说相当陌生。

Web 服务器:Cent 操作系统、Plesk 11.0.9

邮件服务器:MS Exchange 邮件服务器/使用 ORF

其中一封电子邮件的 Postfix 日志

3 月 27 日 13:48:41 专用后缀/拾取[12199]:652EFA106C5:uid=48 from= 3 月 27 日 13:48:41 专用后缀/清理[14376]:652EFA106C5:message-id=<[email protected]> 3 月 27 日 13:48:41 专用 postfix/qmgr[12198]:652EFA106C5:from=,size=726,nrcpt=1(队列事件) 3 月 27 日 13:48:41 专用 postfix/smtp[14378]:mail.mydomain.com[82.888.888.51]:25 的证书验证失败:不受信任的颁发者/CN=clientdomain-WAV01-CA 3月27日13:48:42专用postfix/smtp[14378]:652EFA106C5:to=,relay=mail.client_website.com[82.888.888.51]:25,delay=0.89,delays=0.04/0.01/0.36/0.48,dsn =2.6.0,状态=已发送(250 2.6.0 < [email protected] > [InternalId=11846] 排队等待传送的邮件) 3 月 27 日 13:48:42 专用 postfix/qmgr[12198]:652EFA106C5:已删除

最佳答案

以下代码可能存在一些字符串连接问题:

$headers = "From: noreply@********.com \n";

尝试

$headers = "From: noreply@********.com \r\n";

我推荐使用广泛使用的 phpmailer 类来发送电子邮件: https://github.com/Synchro/PHPMailer

关于php - Postfix/PHP Mail() 使用相同的电子邮件地址发送电子邮件,忽略 header $from,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15659111/

相关文章:

php - RTLIT css padding rtl 正则表达式

html - 链接到部分不适用于富含 HTML 的 Outlook 电子邮件

swift - 如何让 UITableView 的固定标题在滚动后隐藏

php - 从 PHP 脚本返回 JSON

php - Google App Engine 上的 Mediawiki 链接缺少标题参数

php - MySQL中的几个表和操作的SQL请求

php - 通过许多 url 在源代码中查找字符串的代码

email - 从 Thunderbird 中的 POP3 服务器检索旧邮件

php - 一般错误 : 1366 Incorrect string value in Laravel/Mysql

python - 将标题名称添加到 pandas 数据框中的一组列?