11

ウムラウト文字を含むドイツ語の電子メールを生成する必要があります。電子メール自体では、これは完全に機能しますが、電子メールの件名では機能しません。私は多くの異なるウムラウト文字を試しましたが、üを除いてすべて機能しているようです。また、さまざまなメールライブラリ(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();

誰かが私がこの問題の原因と解決策を見つけるのを手伝ってもらえますか?

4

1 に答える 1

12

件名ヘッダーを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";仕事をしました。

于 2012-11-30T13:14:44.440 に答える