使用PHP发送的电子邮件主题中出现的奇怪字符

时间:2015-01-10 04:58:27

标签: php

我正在使用PHP Mail Function发送HTML电子邮件,在我的电子邮件主题中我可以这样。

Just one more step - Confirm Your Account†

我无法弄清楚“—是如何进入“帐户”的,因为我从来没有把它放在变量上。以下是代码。

正在调用的函数

$html = template_registration($name, $email, $user_code);
sendmail($html, $email, $name, "Just one more step - Confirm Your Account‏");


function sendmail($html, $to, $name, $subject){
    require_once( site_path . "/framework/PHPMailer/PHPMailerAutoload.php" );
    $mail = new PHPMailer;
    $mail->isSendmail();
    $mail->setFrom('notifications@example.com', 'Example');
    $mail->addAddress($to, $name);
    $mail->Subject = $subject;
    $mail->msgHTML($html);
    if ( $mail->send() ) {
        return true;
    }
}

请帮助,我甚至不知道在Google上搜索什么。

2 个答案:

答案 0 :(得分:3)

您需要设置标题:

$headers = 'Content-Type: text/html; charset=UTF-8';
mail($to, $subject, $message, $headers);

否则电子邮件被错误解释。

或根据您的代码:

$mail->CharSet = 'UTF-8'; //before sending it of course

â€可能源自电子邮件的其余部分,但编码“错误”,系统无法发挥作用(非常简单)。

答案 1 :(得分:2)

试试这个..你必须为电子邮件功能设置标题。 下面的代码告诉你发送了什么类型的数据。

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";