我通过PHP从包含HTML代码的变量发送echo到邮件功能。奇怪的是,这个
<����}im�
显示在字符串之后..但我不再操纵它了。邮件功能的charset(附件)与HTML代码的charset相同。
答案 0 :(得分:2)
编码问题,也许它试图显示二进制代码?
如果要显示HTML
,则应使用htmlentities//输出:'quote'是
&LT b取代;粗体&LT; / B个回声
ヶ辆($ STR);
答案 1 :(得分:0)
这些字符可能是字符串中的“垃圾”数据。根据字符串来自这些字符的位置,可能是:HTML页面后面的套接字中的额外TCP数据,HTML页面后面的文件中的额外数据,或者其他人实际将这些字符放在HTML页面中(可能是他们的文件)被意外破坏,或出于其他原因)。
答案 2 :(得分:0)
您可以考虑使用htmlMimeMail类来处理电子邮件。所以你可以避免讨厌的电子邮件内部。
答案 3 :(得分:0)
这是我的问题..我使用来自Internet源代码,$ body生成发票,这发送电子邮件..那些字符在HTML源文件的末尾,但我不明白为什么他们在那里:(
$to = 'email@email.com';
$subject = 'Invoice';
$random_hash = md5(date('r', time()));
$headers = "From: mymail@mymail.com\r\nReply-To: webmaster@example.com";
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
$body=rtrim(chunk_split(base64_encode($body)));
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"
--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Hello World!!!
This is simple text email message.
--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Text Emailu.
--PHP-alt-<?php echo $random_hash; ?>--
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: text/html; charset="UTF-8"; name="faktura.html"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
<?php echo htmlentities($body); ?>
--PHP-mixed-<?php echo $random_hash; ?>--
<?php
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );