2

我正在使用PHPMailerAPI 发送电子邮件。我想知道如何以阿拉伯语(非英语)语言发送主题

$mail->CharSet  =  'utf-8';
$array=  FetchTable('cos');
$subject =  $_POST['subject'];
$body    =  $_POST['body'];

$mail = new PHPMailer();
$mail->IsSMTP();    
$mail->Host     = "host";    
$mail->SMTPAuth = true;    
$mail->Username = "yaz@enfaltourism.com";   
$mail->Password = "*******";  
$mail->Port     = "587";  
$mail->From     = "yaz@enfaltourism.com";    
$mail->FromName = "Enfaltourism";   
$mail->Subject  = $subject;     
$mail->AddAddress($email); 
$mail->Send();`

电子邮件已成功发送,但问题在于以阿拉伯语发送主题。设置字符编码后,电子邮件正文以阿拉伯语正确显示,但主题以奇怪的字符显示

更新

include("../mail/class.phpmailer.php");
$array=  FetchTable('cos');
$subject =  $_POST['subject'];
$body    =  $_POST['body'];
    $mail = new PHPMailer();
    $mail->CharSet  =  'utf-8';
    $mail->IsSMTP();    
 $mail->Host     = "mail.enfaltourism.com";    
 $mail->SMTPAuth = true;    
 $mail->Username = "yaz@enfaltourism.com";   
 $mail->Password = "*****";  
 $mail->Port     = "587";  
 $mail->From     = "yaz@enfaltourism.com";    
 $mail->FromName = "Enfaltourism";   
 $mail->Subject  = $subject;

我按照你说的修好了,但这个主题仍然很奇怪

4

4 回答 4

13

在正文和主题行中,我对日文字符也有同样的问题:

我通过以下方式解决了它(电子邮件现在看起来很出色):

$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';

只要对象的 CharSet 属性设置为 UTF-8,实际上就不需要单独对主题进行编码。

于 2014-02-04T15:27:37.697 回答
9

您可以尝试使用此代码。让我知道它是否有帮助

$phpmailer->Subject = "=?UTF-8?B?".base64_encode($subject)."?=";
于 2013-10-18T13:29:47.257 回答
1

尝试使用编码主题base64_encode

$subject = '=?UTF-8?B?'.base64_encode('سلام علیکم').'?=';

但是,必须解决设置问题。

$mail = new PHPMailer;
$mail->CharSet = 'UTF-8';
于 2015-02-14T13:04:16.090 回答
0

尝试这个:

$mail->CharSet = 'UTF-8';
$mail->Subject = html_entity_decode("Recuperación de contraseña");

我确实在我的代码中使用了它并且它有效!

结果

于 2017-11-08T14:46:02.233 回答