我正在使用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) . "?=";
尝试以下步骤来正确解决问题。
-
确保发布主题的页面是UTF-8编码的页面。
1。如果源不是UTF-8,则
iconv("SOURCE_ENCODING","UTF-8",$subject);
-
Var在发送邮件前转储主题
-
尝试用阿拉伯语添加硬编码主题,例如:
$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->