【问题标题】:Php form handler/formatting of email message lostphp表单处理程序/电子邮件消息格式丢失
【发布时间】:2017-08-02 16:49:22
【问题描述】:

我的网站上有一个表单,当我将 htmlspecialchars 函数添加到 php 表单处理程序时,似乎我还必须将字符编码更改为 utf-8,以便带有重音符号的字母能够通过。现在我已经添加了 $headers,字符显示正确,但电子邮件 ($message) 的格式丢失,没有换行符。这是我的代码的样子:

$surname = htmlspecialchars($_POST["surname"], ENT_COMPAT, 'UTF-8');
$firstname = htmlspecialchars($_POST["firstname"], ENT_COMPAT, 'UTF-8');
$address = htmlspecialchars($_POST["address"], ENT_COMPAT, 'UTF-8');
$age = htmlspecialchars($_POST["age"], ENT_COMPAT, 'UTF-8');


$message = "
Website form:

Name: " . $firstname . " " . $surname . "
Address: " . $address . "
Age: " . $age . ";


$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";

if (mail("me@me.com", $_POST['firstname'] ." ". $_POST['surname'], $message, $headers)) {
header("Location: ...");
}

我试图解决这个问题

$message = "Website form\n";
$message .= "Name: " . $firstname . " " . $surname . "\n";
$message .= "Address: " . $address . "\n";
$message .= "Age: " . $age . "\n";

但问题仍然存在。我还尝试将内容类型更改为文本/纯文本,但电子邮件显示为附件文件。我不知所措,不知道我做错了什么,因为格式仍然丢失。我是 php 的初学者,所以任何帮助将不胜感激。

【问题讨论】:

    标签: php forms email formatting handler


    【解决方案1】:

    你应该试试这样的message格式:

    // email message
    $message ="";
    $message .= 'Website Form:'."\r\n";
    $message .= 'Name:'. $firstname ." ". $surname . "\r\n";
    $message .= 'Address:'. $address . "\r\n";
    $message .= 'Age:'. $age . "\r\n";
    

    这里是完整的代码:

    <?php
    $surname = htmlspecialchars($_POST["surname"], ENT_COMPAT, 'UTF-8');
    $firstname = htmlspecialchars($_POST["firstname"], ENT_COMPAT, 'UTF-8');
    $address = htmlspecialchars($_POST["address"], ENT_COMPAT, 'UTF-8');
    $age = htmlspecialchars($_POST["age"], ENT_COMPAT, 'UTF-8');
    
    $to = 'youemail@email.com';
    $subject = 'Subject Line';
    $from = 'info@example.com';
    
    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    
    // Create email headers
    $headers .= 'From: '.$from."\r\n".
        'Reply-To: '.$from."\r\n" .
        'X-Mailer: PHP/' . phpversion();
    
    // email message
    $message = "";
    $message .= 'Website Form:'."\r\n";
    $message .= 'Name:'. $firstname ." ". $surname . "\r\n";
    $message .= 'Address:'. $address . "\r\n";
    $message .= 'Age:'. $age . "\r\n";
    
    // Sending email
    if(mail($to, $subject, $message, $headers)){
        echo 'Your mail has been sent successfully.';
    } else{
        echo 'Unable to send email. Please try again.';
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多