【问题标题】:How to set an umlaut ü in the mail subject如何在邮件主题中设置变音符号ü
【发布时间】:2012-11-18 17:05:40
【问题描述】:

我需要生成包含变音符号的德语电子邮件。在电子邮件本身中,这非常有效,但在电子邮件的主题中却不行。我尝试了许多不同的变音字母,它们似乎都可以工作,除了 ü。我还尝试了不同的邮件库(HTMLMimeMail 和 PHPMailer),但它们都失败了:

$mail = new htmlMimeMail();
$mail->setTextEncoding("base64");
$mail->setHTMLEncoding("base64");
$mail->setTextCharset("UTF-8");
$mail->setHTMLCharset("UTF-8");
$mail->setHeadCharset("UTF-8");
$mail->setSMTPParams(mailinglist_smtp_host,mailinglist_smtp_port);
$mail->setHtml("test");
$mail->setFrom("test@test.nl");    

$mail->setSubject("The ï, ö, ë, ä, and é work, but when adding the ü it doesn't");

$recipients[] = "me@myhost.nl";    
$mail->send($recipients);

&

$mail = new PHPMailer();
$mail->IsMail();
$mail->FromName = 'test';
$mail->From = 'test@test.nl';
$mail->AddAddress("me@myhost.nl");
$mail->Subject = "The ï, ö, ë, ä, and é work, but when adding the ü it doesn't";
$mail->Body = "test";    
$mail->Send();

谁能帮我找到这个问题的根源和解决方案?

【问题讨论】:

    标签: php email phpmailer diacritics subject


    【解决方案1】:

    您应该quoted-printable 对主题标头进行编码。

    像这样:

    $mail->Subject = "=?UTF-8?Q?" . quoted_printable_encode("The ï, ö, ë, ä, and é work, but when adding the ü it doesn't") . "?=";
    

    引用 PHP 中的可打印编码:http://www.php.net/manual/en/function.quoted-printable-encode.php

    编辑:$mail->CharSet = "UTF-8"; 完成了这项工作。

    【讨论】:

    • 谢谢,但这并没有解决问题。题目现在变成了:=?UTF-8?Q?=C3=AF,=C3=B6,=C3=AB,=C3=A4,和=C3=A9工作,但是当添加==C3= BC 它没有?=
    • 嗯,添加$mail->CharSet = "UTF-8"; 就足够了,并删除引用的可打印内容。试试看,告诉我它是如何工作的!
    • 超级,为 PHPMailer 完成了工作:)。谢谢。现在,正如您在我的 mimemail 代码中看到的那样,我尝试了与此类似的选项,但显然我错过了正确的设置。您是否知道我需要在 mimemail 中设置什么才能应用相同的修复?
    • 甜蜜!我建议您也使用 PHPMailer 来构建 MIME 消息,而不是 htmlMimeMail。否则我看不出问题出在哪里。
    • 另一种解决方案是查看AlphaMail,它会为您处理所有这些:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 2013-06-05
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    相关资源
    最近更新 更多