php邮件发件人:&回复:标题问题

php邮件发件人:&回复:标题问题,php,email,header,Php,Email,Header,好的,我正在写一个php联系人表单,它将发送两封电子邮件。一封给网站管理员,并将信息和类似的确认电子邮件发送给表单提交者 问题在于确认电子邮件。我试图配置From:头和Reply to:但是由于某种原因遇到了障碍 最初我的php设置为声明每个头参数 $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $guests = $_POST['guests']; $type = $_POST['type'

好的,我正在写一个php联系人表单,它将发送两封电子邮件。一封给网站管理员,并将信息和类似的确认电子邮件发送给表单提交者

问题在于确认电子邮件。我试图配置From:头和Reply to:但是由于某种原因遇到了障碍

最初我的php设置为声明每个头参数

$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$guests = $_POST['guests'];
$type = $_POST['type'];
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$message = $_POST['message'];
$formcontent="THIS IS A FORM SUBMISSION FROM domain.COM... \n \n PARTY INQUIRY \n \n From: $name \n Email: $email \n Phone: $phone \n # of Guests: $guests \n Type: $type \n Date Requested: $month $day, $year \n \n Additional Info: $message";
$comfirmcontent="THIS IS A CONFIRMATION OF YOUR FORM SUBMISSION TO domain.COM... \n \n PARTY INQUIRY \n \n From: $name \n Email: $email \n Phone: $phone \n # of Guests: $guests \n Type: $type \n Date Requested: $month $day, $year \n \n Additional Info: $message \n\n\n If you have any further questions please email info@mydomain.com";
$confirmsubject="Confirmation for your inquiry to mydomain.COM";
$confirmheader="From: mydomain.com" . "\r\n" .
"Reply-To: info@mydomain.com" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
$recipient = "info@domain.com";
$subject = "Party Inquiry from Website";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
mail($email, $confirmsubject, $comfirmcontent, $confirmheader) or die("Error!");
header('Location: party-form-thank-you.html')
据我所知,这是正确的方法,但我仍然有一个From:比如mydomain。com@myhostdomain.com作为发件人姓名和发件人电子邮件。这就是在我声明标题之前的情况,它是空的

然后我尝试使用

mail($email, $confirmsubject, $comfirmcontent, $confirmheader,'-finfo@mydomain.com') or die("Error!");
返回相同的结果

因此,我求助于简单地使用以下声明的标题

mail($email, $confirmsubject, $comfirmcontent, null,'-finfo@mydomain.com') or die("Error!");
这会给我正确的发件人/回复地址,但也会将其作为发件人名称

因此,我的问题是,是否有任何方法来编写邮件标题,以便电子邮件可以这样表述:

发件人名称:myDomain.com


发件人电子邮件:info@mydomain.com

我使用一个数组作为标题,然后将它们放在\r\n:

$headers = array();
$headers[] = 'Content-type: text/html; charset="UTF-8";';
$headers[] = 'Date: ' . date('r', $_SERVER['REQUEST_TIME']);
$headers[] = 'Message-ID: <' . $_SERVER['REQUEST_TIME'] . md5($_SERVER['REQUEST_TIME']) . (empty($_SERVER['SERVER_NAME']) ? '' : '@' . $_SERVER['SERVER_NAME']) . '>';

// here is the from and reply-to part:
$headers[] = 'From: "' . $fromName . '" <' . $fromAddress . '>';
$headers[] = 'Reply-To: "' . $replyToName . '" <' . $replyToAddress . '>';
$headers[] = 'X-Mailer: PHP v' . phpversion();
if (!empty($_SERVER['SERVER_ADDR'])) {
    $headers[] = 'X-Originating-IP: ' . $_SERVER['SERVER_ADDR'];
}

// Use the implode function to collapse the array into a single string
mail($to, $subject, $message, implode("\r\n", $headers));

是的,都在手册里,如果你参考手册里的代码,那就是我最初编写的代码。正如你在我的帖子中看到的$到nobody@example.com'; $主题=‘主题’$消息='你好'$标题='来自:webmaster@example.com' . \r\n.“答复:webmaster@example.com' . \r\n.“X-Mailer:PHP/”。phpversion;邮件$to、$subject、$message、$headers;你需要深入研究它-发件人:应为电子邮件地址。你没有提供一个,你只是在打一个域名。发件人:foo@example.com-好。From:example.com-bad.fact$fromname=mydomain.com$来自电子邮件=info@mydomain.com; '发件人:'$从名字开始。”非常适合显示发件人姓名和发件人电子邮件,这是我想要的。谢谢!这几乎让我一路走到了那里。我试图实现相同的代码,但没有数组:$fromname=mydomain.com$来自电子邮件=info@mydomain.com; $confirmheader='发件人:'$fromname.“;”答复:"$fromname.“;”X-Mailer:phpv'。phpversion$收件人=info@mydomain.com; $主题=来自网站的联系人$mailheader=发件人:$email\r\n;邮件$recipient、$subject、$formcontent、$mailheader或dierror!;mail$email、$confirmsubject、$comfirmcontent、$confirmheader或dieError!;标题'位置:联系表单谢谢你.html'这已经从名称和电子邮件中获得正确显示的信息。但是,当我回复电子邮件时,它不会回复该地址,它会尝试回复收件人?数组很好,因为您可以在一行中获得每个条目,并且在结束之前不必担心新行。“$email”和“$fromemail”变量的值是多少?另外,如果你收到确认邮件并回复了,你的发件人和回复地址都是一样的。遗憾的是,由于我是一名前端开发人员,php不是我的专长。所以我试图简化它;事实上,我确实收到了确认电子邮件,并试图回复它,但它奇怪地回复了我自己。