Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP邮件表单发送失败_Php - Fatal编程技术网

PHP邮件表单发送失败

PHP邮件表单发送失败,php,Php,我是PHP编程新手。我试图制作一个包含文件附件的表单。当我测试它时,它无法将表单发送到我的电子邮件。如果我遗漏了什么,请帮我看看我的PHP代码。提前感谢您的指导。我引用了这个代码 错误消息显示: 警告:mail()[function.mail]:mail()函数的参数不正确,邮件未发送。 它指向行“$sendMail=mail($sendTo,$mailSubject,null,$header);” 下面是我的PHP代码: <?php /*Retrive inputs from

我是PHP编程新手。我试图制作一个包含文件附件的表单。当我测试它时,它无法将表单发送到我的电子邮件。如果我遗漏了什么,请帮我看看我的PHP代码。提前感谢您的指导。我引用了这个代码

错误消息显示: 警告:mail()[function.mail]:mail()函数的参数不正确,邮件未发送。 它指向行“$sendMail=mail($sendTo,$mailSubject,null,$header);”

下面是我的PHP代码:

    <?php

/*Retrive inputs from the form */
//Required fields
$fullName = $_POST["Fullname"];
$gender = $_POST["genderRadioGroup"];
$DOB = $_POST["DOB"];
$address = $_POST["Address"];
$state = $_POST["State"];
$zipCode = $_POST["Zipcode"];
$contactNo = $_POST["Contact"];
$emailAdd = $_POST["Email"];


//Optional fields
// If applicant filled the field, take it. Else, make it " - ".
$nickName = $_POST["Nickname"];
if($nickName!="")
{
    $nickName = $nickName;
}
else
{
    $nickName = " - ";
}

$description = $_POST["Description"];
if($description!="")
{
    $description = $description;
}
else
{
    $description = " - ";
}

//Message content
$message = <<<EOD
<br><hr><br>
Full Name: $fullName <br>
Nickname: $nickName <br>
Gender: $gender <br>
Date of Birth: $DOB <br>
Address: $address <br>
State: $state <br>
Zip Code: $zipCode <br>
Contact Number: $contactNo <br>
E-mail address: $emailAdd <br>
Description: $description <br>
EOD;

/* Uniqid Session */
$sessionID = md5(uniqid(time()));

/* Header */
//Sender
$header = "From: $fullName <$emailAdd> \n";
$header .= "Reply-To: $emailAdd \n";
//MIME
$header .= "MIME-Version: 1.0 \n";
$header .= "Content-type: multipart/mixed; boundary=\"".$sessionID."\"\n\n";
$header .= "This is a multi-part message in MIME format. \n";

$header .= "-- $sessionID \n";
$header .= "Content-type: text/html; charset=utf-8 \n";
$header .= "Content-transfer-encoding: 7bit \n\n";
$header .= "$message \n\n";

/* Attachment */
if($_FILES["Attachment"]["name"] != "") //If there is attachment
{
    //Variables
    $fileName = $_FILES["Attachment"]["name"];
    $fileContent = chunk_split(base64_encode(file_get_contents($_FILES["Attachment"]["tmp_name"])));

    //Adding attachment to header
    $header .= "-- $sessionID \n\n";
    $header .= "Content-Type: application/octet-stream; name=\"".$fileName."\"\n";
    $header .= "Content-Transfer-Encoding: base64 \n";
    $header .= "Content-Disposition: attachment; filename=\"".$fileName."\"\n\n";
    $header .= $fileContent."\n\n";
}

/* Send Mail */
// Recipient
$sendTo = "mytestmail@gmail.com";
$mailSubject = "The Form - $fullName";
$sendMail = mail($sendTo, $mailSubject, null, $header);

if($sendMail)
{
    echo "Thank you!";
}
else
{
    echo "An error occured.";
}
?>

我没有检查你所有的代码。。但是

    mail(  $to,         $subject,      $message,     $headers);
    mail(  $sendTo,    $mailSubject,     null,       $header);

@F3rr31r4它显示警告:mail()[function.mail]:mail()函数的参数错误,邮件未发送。它指向行$sendMail=mail($sendTo,$mailSubject,null,$header);还有文本“发生了一个错误”,这是我在代码末尾的IF语句中输入的文本用户1340749

 1. Check your PHP version
 2. print("<pre>" . $header . "</pre>");  and check your msg
1。检查您的PHP版本
2.打印(“$header.”);检查一下你的味精

感谢您的及时回复。正如我从我提到的网站了解到的,$消息被设置为“null”,因为消息内容已经包含在$header中。错了吗?我过去一直在努力解决这个问题,但我可以建议您使用一个类(比如)来设置所有正确的标题等。是的,您可以这样做,原始的是邮件(string$to,string$subject,string$message[,string$additional_Header[,string$additional_parameters])。。。。。。检查手册和示例;)现在,您说它发送失败,消息错误是什么?@F3rr31r4它显示警告:mail()[function.mail]:mail()函数的参数错误,邮件未发送。它指向行$sendMail=mail($sendTo,$mailSubject,null,$header);还有文本“发生了一个错误”。这是我在代码末尾的IF语句中输入的文本。我已经测试过了,但是我如何在这里显示输出?有很多行,因为它包括图像附件。我看到你删除了另一条消息,你是否纠正了你的问题?你正在尝试将电子邮件的内容嵌入标题中。电子邮件的格式不完整,行尾错误…省去很多麻烦,去找一个工具帮你完成这项工作(phpmailer或swiftmailer)