邮件脚本不会发送每个字段

时间:2017-08-08 18:26:47

标签: php email

很抱歉这个愚蠢的问题(我刚刚开始),但我不太明白为什么我的PHP脚本的电话字段不会出现在我收到的电子邮件中。我已将HTML中的字段添加到正常工作中,如果电话字段为空,则会显示错误消息,但如果我运行它,则我收到的电子邮件将不包含该字段。

这是PHP邮件脚本:

<?php 

require('email_config.php');

// sender information
$name = trim($_POST['name']);
$phone = trim($_POST['phone']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);
$error = "";

// check sender information
$pattern = "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$^";

if(!preg_match_all($pattern, $email, $out)) {
    $error = $invalid_email; // for invalid email
}

if(!$email) {
    $error = $invalid_email; // for empty email field
}   

if (!$phone) {
    $error = $invalid_phone; // for empty phone field
}

if(!$message) {
    $error = $invalid_message; // for empty message field
}

if (!$name) {
    $error = $invalid_name; // for empty name field
}

// email header

$headers = "From: ".$name." <".$email.">\r\nReply-To: ".$email."";

if (!$error){

    // sending email
    $sent = mail($to_email,$subject,$message,$headers); 

    if ($sent) {
            // if message sent successfully
            echo "SEND"; 
        } else {
            // error message
            echo $sending_error; 
        }
} else {
    echo $error; // error message
}
?>

提前致谢!

1 个答案:

答案 0 :(得分:1)

您似乎跳过将手机添加到邮件中,即您的邮件 应该是这样的

$message = trim($_POST['message']).' \n Phone: '.trim($_POST['phone']);

好像你正在发送计划文本邮件,所以我使用了新行特殊字符/ n。

要了解有关特殊字符串字符的更多信息 http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single