Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postfix/PHP Mail()以相同的电子邮件地址发送电子邮件,忽略邮件头$from_Php_Email_Header_Postfix Mta - Fatal编程技术网

Postfix/PHP Mail()以相同的电子邮件地址发送电子邮件,忽略邮件头$from

Postfix/PHP Mail()以相同的电子邮件地址发送电子邮件,忽略邮件头$from,php,email,header,postfix-mta,Php,Email,Header,Postfix Mta,我们最近升级了我们的Web服务器,我们遇到的第一个问题之一是发送到同一个域时遇到问题,因为该网站托管在与公司exchange服务器不同的服务器上。无论如何,我修复了一些简单的配置更改和禁用域的邮件服务 无论如何,这不起作用,但当我在网站上测试一些PHP邮件表单时,我没有注意到的是,它们都被作为我的电子邮件地址发送给客户端 这就是PHP(我认为这不是问题) 有人能看到这个代码有什么问题吗?我已尝试添加-fnoreply@**.com作为发送参数,但它不会改变我自己的电子邮件地址,使其显示为发

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

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

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


有人能看到这个代码有什么问题吗?我已尝试添加-fnoreply@**.com作为发送参数,但它不会改变我自己的电子邮件地址,使其显示为发件人

我不认为这是一个PHP问题,它看起来更像是一个后缀问题,但真正困扰我的是,我的电子邮件地址是如何作为发件人出现的,它在任何地方都没有被使用

以前有人有过这样的经历吗?和两周前一样,我根本没有使用Postfix,所以这对我来说是全新的

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

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

其中一封电子邮件的后缀日志

3月27日13:48:41专用后缀/拾取[12199]:652EFA106C5:uid=48从= 3月27日13:48:41专用后缀/清除[14376]:652EFA106C5:消息id= 3月27日13:48:41专用后缀/qmgr[12198]:652EFA106C5:from=,size=726,nrcpt=1(队列活动) 3月27日13:48:41专用后缀/smtp[14378]:mail.mydomain.com[82.888.888.51]的证书验证失败:25:不受信任的颁发者/CN=clientdomain-WAV01-CA 3月27日13:48:42专用后缀/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,status=sent(250 2.6.0[InternalId=11846]排队等待投递的邮件)
3月27日13:48:42专用后缀/qmgr[12198]:652EFA106C5:已删除

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

试一试

我建议使用phpmailer类发送广泛使用的电子邮件:

php.ini指令仅适用于windows设备

sendmail_from字符串,邮件中应使用哪个“发件人:”邮件地址 在Windows下从PHP发送。该指令还设置了 “返回路径:”标题

我不认为这是一个代码问题。在Linux机器上运行webserver+php环境的用户是谁?如果你以自己的身份运行它,那么它可能是使用你的电子邮件地址提交给postfix的

如果您使用的是postfix,请不要忘记跟踪/var/log/maillog,这会告诉您很多信息,并帮助您找到问题的根源

sudo tail-f/var/log/maillog


您可以尝试使用PHPMailer或Symfony-Mailer库注册一个免费帐户,并与PHPMailer或Symfony-Mailer一起使用该帐户发送电子邮件,看看您是否收到相同的问题。

+1用于指出正确的行拆分顺序。此处定义:+1用于推荐phpMailer。我真的不明白为什么这么多人一直在使用PHP可怕的内置
mail()
函数,而像phpMailer这样的替代方案却让生活变得如此简单。这并没有改变任何事情,我要提到的一件重要的事不仅仅是“from”作为我的电子邮件出现的字段也是回复,这很奇怪。但也不知道我的电子邮件地址是从哪里来的,因为我没有设置web服务器,我是以root用户身份登录的,我的电子邮件没有输入到服务器上的任何地方,就像它不知怎么记住了一样,我没有告诉服务器我的电子邮件我完全被难住了。我们还没有实现PHP邮件类,因为这个网站很古老,他们不想为工作付费。我以前也用过mail(),当我发现phpMail是一见钟情的时候。解决了上面提到的所有问题。在后缀日志中我的电子邮件很奇怪,所以它肯定是从某个地方得到的。
<?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' ) ; 
?>
$headers = "From: noreply@********.com \n";
$headers = "From: noreply@********.com \r\n";