PHPMailer的阿拉伯语问题


Arabic Issue with 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;

帮助将不胜感激:)

just add

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

及其作品

使用这个。

    $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)

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

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

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

    1。如果源不是UTF-8,则

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

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

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

试试老方法:

$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);

使用

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

和添加$mailer->