【问题标题】:PHP mail function sending blank emails [duplicate]PHP邮件功能发送空白电子邮件[重复]
【发布时间】:2019-11-27 01:40:09
【问题描述】:

我有一个发布到 PHP 邮件函数的 HTML 表单。由于某种原因,它不再发送内容。电子邮件显示“此电子邮件没有内容”。我错过了什么吗?

//HTML - Post method form. 

<form class="form" id="form" action="submitform.php" method="post">
<h2 style="padding-top: 10px;">Contact Us</h2>
<input class="input" type="text" placeholder="Name" name="name"><br>
<input class="input" type="text" placeholder="E-Mail Address" name="email"><br>
<input class="input" type="text" placeholder="Phone #" name="phone"><br>
<textarea class="input" placeholder="Questions, Specifications, etc." 
name="message</textarea>
<input class="inputButton" type="submit">
</form> 

//PHP - Gets posted HTML input data and sends it to the email, formatted with \n 

<?php 
$to = 'example@example.com' ;
$subject = 'Inquiry' ; 
$name = $_POST['name'] ; 
$email = $_POST['email'] ;
$phone = $_POST['phone'] ;
$message = $_POST['message'] ;

$message = "From: $name  \nEmail: $email \nPhone: $phone \nMessage: $message \n";

$sent = mail ($to, $subject, $message) ; 
if($sent == true) {
echo "<h3>Thank you for your inquiry.</h3>"; 
}else{
echo "<h3>Sorry, your message wasn't sent.</h3>; 
}
?>

【问题讨论】:

    标签: php html email


    【解决方案1】:

    我发现定义标题,即使我只需要默认值,也可以帮助我传递邮件。我不能说这是您需要做的,因为您的代码看起来应该按原样成功运行。

    将标题设置为(我相信)默认值的示例:

        $to = $to_email;
        $subject = $your_subject;
        $message = $your_message;
        $headers = "From: S.O.<no-reply@dontusethis.email>\r\n" . 
                   "Reply-To: [can be nice, not needed of course]\r\n" .
                   "X-Mailer: PHP/" . phpversion();
        $headers .= 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";        
        mail($to,$subject,$message,$headers);
    

    【讨论】: