我遇到了PHP mail()函数的问题。如下所示,我使用PHP mail()函数发送带有中文字符的HTML电子邮件。当发送$ studentInfo的第一封电子邮件在最终电子邮件中正确显示文本时,发送$ studentInfoEN的下一个命令无法正确显示。有什么想法吗?
P.S。 $ name,$ phoneNumber,$ eMail等都是从HTML表单文本输入中接收的文本字符串
<?php
$message="<html><body><p>Training Inquiry: ".$_GET["courseName"]." ".$trainerMonths[$userMonth]." ".$_GET["day"].", 2014 ".$_GET["enLoc"]."</p></body></html>";
$studentInfo="<html><body><p>
姓名: $name<br/>
电话号码: $phoneNumber <br/>
邮箱: $eMail<br/>
工厂名称: $factoryName<br/>
WRAP注册编号: $wrapNumber<br/>
所在国家: $homeCountry </p></body></html>";
$studentInfoEN="<html><body><p>
Name $name <br/>
Phone Number: $phoneNumber <br/>
E-mail: $eMail <br/>
Factory Name: $factoryName <br/>
WRAP Registration Number: $wrapNumber <br/>
Home Country: $homeCountry </p></body></html>";
$trainerHeaders = "From:".$email."\n"."Reply-To:".$email."\n"."Content-type:text/html;charset=utf-8;"."\n";
$clientHeaders = "From:".$trainerAddress."\n"."Reply-To:".$trainerAddress."\n"."Content-type:text/html;charset=utf-8;"."\r\n";
mail($trainerAddress,"Training Inquiry",$message.$studentInfoEN,$trainerHeaders);
mail($eMail,"Web Submission Confirmation","$automatedMessage"."$confirmMessage"."$studentInfo",$clientHeaders);
?>
答案 0 :(得分:1)
这似乎不对,您在开始<html>
标记之前输出字符串,并且您要在第一行关闭body
和html
标记:
$studentInfoEN="
Name"."<html><body><p>$name</p></body></html>"."
应该只是:
$studentInfoEN="<html><body><p>Name: $name
修改:除此之外,您正在连接两条消息$message.$studentInfoEN
,为您提供2个html
标记,2个body
等可能会导致显示错误。