我正在使用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;
帮助将不胜感激:)
答案 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)
请尝试以下步骤正确解决问题。
确保发布主题的页面是UTF-8编码页面。
1a上。如果源不是UTF-8,那么
iconv("SOURCE_ENCODING","UTF-8",$subject);
Var在发送邮件之前转储主题。
尝试用阿拉伯语添加硬编码主题,例如:
$subject= "تجربة عنوان للرسالة";