web-dev-qa-db-ja.com

drupal_mail()で使用する名前とアドレスを準備します

drupal_mail()関数を使用すると、特定の文字に問題が発生します。

この問題のApacheerror.logエントリは次のとおりです。

'に' 無効無視????????????受信者のアドレス「= UTF-8 B IsWgxZLFvcWhxZPFvsW4wqXCtcOAw4HDgsODw4TDhcOGw4fDiMOJw4rDi8OMw40 = = = UTF-8 B w47Dj8OQw5HDksOTw5TDlcOWw5jDmcOaw5vDnMOdw5/DoMOhw6LDo8Okw6XDpg == = = UTF-8 B w6fDqMOpw6rDq8Osw63DrsOvw7DDscOyw7PDtMO1w7bDuMO5w7rDu8O8w73DvyI = = =? UTF-8?B?IDxjaXRyaWNndXlAZ21haWwuY29tPg ==?= 'トランザクションが中止されました:受信者が指定されていません

例として、電子メールを正常に送信する最も簡単な方法は何でしょうか( RFC2822 形式の "User <[email protected]> ")から:

ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÍÎÏÐÑÒÓÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñóôõöøùúûýÿ <[email protected]>

現在、drupal_mail()は次の場合に失敗します:

「電子メールを送信できません。問題が解決しない場合は、サイト管理者に連絡してください。」

できれば、これらの特殊文字をそのままにしておくことができればと思います。

それ以外の場合、文字列を変換または準備するために音訳やPathautoなどのプロジェクトを使用できますか?もしそうなら、「宛先」の名前を準備するためにどのプロジェクトと機能を使用する必要がありますか?

Drupalログメッセージ: enter image description here

1
Citricguy

@decezeへのすべてのクレジット

元の解決策

要するに:

mb_internal_encoding('UTF-8');

$name  = '山本';
$email = '[email protected]';
$addr  = mb_encode_mimeheader($name, 'UTF-8', 'Q') . " <$email>";
0
Citricguy