PHPMailer的阿拉伯语问题

时间:2013-03-23 22:11:49

标签: php encoding phpmailer

我正在使用PHPMailer并尝试发送带有阿拉伯语文本的电子邮件,它正在发送空主题,我可以在我的收件箱中看到“(没有主题)”

我正在使用以下内容:

HTML代码

<form action="mail.php" method="post">
<input type="text" name="subject" />
<input type="submit" value="Send" />
</form>

PHP代码(mail.php)     

$subject = $_POST["subject"];
    $mailer = new PHPMailer();
            $mailer->CharSet = 'UTF-8';
            $mailer->IsSMTP();
            $mailer->SMTPDebug = 1;
            $mailer->SMTPAuth = true;



            // Prepare Message  
            $mailer->Subject = ($subject);
            $emails = 0;

帮助将不胜感激:)

5 个答案:

答案 0 :(得分:3)

只需添加

$mailer->CharSet = 'UTF-8';

及其作品

答案 1 :(得分:2)

使用它。它对我有用。

    $mail = new PHPMailer();
    $mail->CharSet = 'UTF-8';       
    $mail->IsSMTP();                                   // send via SMTP
    $mail->Encoding     = "base64";
    $mail->Host     = ........

    ...

    $mail->Subject  =  '=?UTF-8?B?'.base64_encode($subject).'?=';

如果您htmlentities ($subject)将其更改为htmlspecialchars ($subject) htmlenitities中断编码。

答案 2 :(得分:1)

$subject = $_POST["subject"];
$subject = "=?UTF-8?B?" . base64_encode($subject) . "?="; 

答案 3 :(得分:0)

尝试旧方式:

$to      = 'any@mail.com';
$subject = 'Hi!';
$message = 'Whats up?';
$headers = 'From: mail@of.you.com' . "\r\n" .
        'Reply-To: noreply@blabla.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion()."\r\n";                         
$headers .= 'MIME-Version: 1.0' . "\r\n";
//if you send an html page:
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail($to, $subject, $message, $headers);

答案 4 :(得分:0)

请尝试以下步骤正确解决问题。

  1. 确保发布主题的页面是UTF-8编码页面。

    1a上。如果源不是UTF-8,那么

    iconv("SOURCE_ENCODING","UTF-8",$subject);
    
  2. Var在发送邮件之前转储主题。

  3. 尝试用阿拉伯语添加硬编码主题,例如:

    $subject= "تجربة عنوان للرسالة";