2013-12-11 107 views
0

我建议将标题添加到我的php代码中,因为即使用户在单击提交之前在网页上显示了它们,我的电子邮件仍会通过空白/空表单字段收到我的收件箱。如果有人能告诉我我是否做得对,我会非常感激。添加标题到我的php代码?

<?php 


$EmailFrom = "[email protected]"; 
$EmailTo = "[email protected]"; 
$Subject = "Online contact form"; 
$fullName = Trim(stripslashes($_POST['fullName'])); 
$contactNo = Trim(stripslashes($_POST['contactNo'])); 
$message = Trim(stripslashes($_POST['message'])); 

// prepare email body text 
$Body = ""; 
$Body .= "fullName: "; 
$Body .= $fullName; 
$Body .= "\n"; 
$Body .= "contactNo: "; 
$Body .= $contactNo; 
$Body .= "\n"; 
$Body .= "message: "; 
$Body .= $message; 
$Body .= "\n"; 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$success = mail($EmailTo, $Subject, $Body, $headers, $EmailFrom"); 


// redirect to success page 
if ($success){ 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=Thankyou.html\">"; 
} 
else{ 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">"; 
} 
?> 
+0

您还可以显示您的HTML。是'修剪'你自己的功能? – putvande

+0

你在变量** $ success中有一个额外的**双引号** ** – Ali

+0

@putvande'trim'是一个php库函数。 – webbiedave

回答

0

您应该使用PHP header()函数:

报头( '内容类型:应用/ HTML');

,因为这将首先发送到浏览器...

+0

这是一个处理页面,发送电子邮件。我认为主要问题与本页面产生的HTML没有任何关系。 – webbiedave

0

我这里是如何从/设置发件人/回复到头部的电子邮件:

$headers = array(
     'From: sender name <[email protected]>', 
     'Sender: [email protected]', 
     'To: '.$to, 
     'Reply-To: [email protected]', 
     'MIME-Version: 1.0', 
     'Content-Type: text/html; charset=utf-8', 
     'Content-Transfer-Encoding: 8bit', 
); 

if ($cc) 
    $headers[] = 'CC: ' . $cc; 
if ($bcc) 
    $headers[] = 'BCC: ' . $bcc; 

$response = @mail($to, $subject, $content, implode("\n", $headers), '-f [email protected]'); 

注:如你看到有很多重复的发件人的电子邮件地址,但我注意到邮件客户端和邮件发件人(如sendmail)的行为不同,因此需要处理可能的配置