繁体   English   中英

PHP电子邮件提交表单接收者未收到正确的发送者电子邮件地址

[英]PHP email submit form receiver not receiving the correct sendr email address

我试图找出与提交表单的PHP代码有关的问题,我正在为我的朋友做。 它正在通过发送电子邮件,但是问题是收件人收到的电子邮件地址很奇怪。 我正在附上图片以进行更仔细的查看。

我的PHP代码是:

<?php 
    $error = false;
    $sent = false;

    if(isset($_Post['name'])) {
        if(empty($_Post['name']) || empty($_Post['email']) ||  empty($_Post['comments'])) {
            $error = true;
        } else {

        $to = "linardsberzins@gmail.com";

        $name = trim($_Post['name']);
        $email = trim($_Post['email']);
        $comments = trim($_Post['comments']);

        $subject = "Contact Form";

        $messages =  "Name: $name \r\n Email: $email \r\n Comments: $comments";

        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $headers .= "From:" . $name . "\r\n";
        $mailsent = mail($to, $subject, $messages, $headers);

        if($mailsent) {
            $sent = true;
        }
    }
}
?>

非常感谢 显示的是奇怪的电子邮件

Sender <HIS@EXAMPLE.COM>应该像这样:

 $headers .= 'From: '.$name.' <'.$email.'>' . "\r\n";

尝试将标题添加到电子邮件中,例如PHP邮件手册示例2中的标题

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

如果您希望它来自带有名称的电子邮件,则可以使用

$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";

将此添加到标题

$headers .= "Reply-To: $replyEmail\r\n";

发件人:标头应包括电子邮件地址和名称,例如

"From:My Display Name<mydisplayname@gmail.com>\r\n"
<?php 
    $error = false;
    $sent = false;

    if(isset($_Post['name'])) {
        if(empty($_Post['name']) || empty($_Post['email']) ||  empty($_Post['comments'])) {
            $error = true;
        } else {

        $to = "linardsberzins@gmail.com";

        $name = trim($_Post['name']);
        $email = trim($_Post['email']);
        $comments = trim($_Post['comments']);

        $subject = "Contact Form";

        $messages =  "Name: $name \r\n Email: $email \r\n Comments: $comments";

        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $headers .= 'From: '.$name.' <sender@example.com>' . "\r\n";
        $mailsent = mail($to, $subject, $messages, $headers);

        if($mailsent) {
            $sent = true;
        }
    }
}
?>

尝试这个。 只需更改标题即可。

$headers .= 'From: '.$name.' <sender@example.com>' . "\r\n";

您好,这不是错误。.如果您提供SENDER EMAIL那么它将显示发件人的电子邮件地址,而不是此地址。.否则,它将使用我们的托管地址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM