这就是我所拥有的:
$msg = "1'2 ’3"4 “5”6 7~8!9@10#11$12%13^14&15*16(17)18}19{20"21:22?23>24<25 ";
mail("myemail@example.com","My subject",$msg);
当我收到电子邮件时,我得到了这个:
1'2 ’3"4 “5”6 7~8!9@10#11$12%13^14&15*16(17)18}19{20"21:22?23>24<25
所以它将字符更改为html我猜?有任何想法吗? 我需要收到的电子邮件包含我在$ msg.thank中存储的确切内容
它还删除了我的退货休息时间。在db中,字段有返回中断,它存储如下:
Hello $name
welcome to $websitename
thank you, management
这是一个蹩脚的例子,但你可以看到有2个空行。当电子邮件被发送出去时,这些回复中断将被忽略,并且它的全部符合任何想法
答案 0 :(得分:4)
尝试添加标题,例如:
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to, $subject, $message, $headers);
见这里:PHP mail()
答案 1 :(得分:2)
您必须将邮件封装在base64
编码格式中,以防止内容错位:
$msg = "1'2 ’3\"4 “5”6 7~8!9@10#11$12%13^14&15*16(17)18}19{20\"21:22?23>24<25";
$body = chunk_split(base64_encode($msg));
mail("myemail@example.com", "My subject", $body, "Content-Transfer-Encoding: base64");
处理换行的方式因邮件客户端而异;例如,已知Outlook可以压缩新行,但也提供了恢复它们的方法。
为了完全控制,您应该选择HTML电子邮件,可选择使用文本模式后备。