web-dev-qa-db-ja.com

drupal_mail()およびアポストロフィ付きの名前

Drupal_mailを使用してメールを送信するときに、表示名(メールではない)の[宛先]フィールドにアポストロフィが含まれていると、エラーが発生します。

たとえば、 drupal_mail()のドキュメント を参照すると、「Another User <[email protected]> "は有効です。" Another User <[email protected]> "は完全に検証されますが、" Another O'Neil <[email protected]> "は失敗します。

姓をオニールではなくオニールに変更する必要がありますか、それともなんとかしてエスケープできますか?
"Another O'Neil" <[email protected]> "成功しませんでした。

  • セットアップ:Ubuntu 11.04 LTS
  • Drupalバージョン:7.x
  • メールサービス:Amazon SES
  • 追加のメールモジュール:「HTMLメール」と「メールシステム」
1
Citricguy

私はいくつかのことを想定しています:

  • エキゾチックなメールトランスポートがインストールされておらず、Drupal phps 'へのフォールバック) mail()
  • UNIXシステムを介してメールを配信します。 Windowsではメールの扱いが異なります。

RFC2822 を掘り下げると、エスケープとその他のいくつかの文字が見つかります。

ソリューションはそれ自体を

$to = "\"Another O'Neil\" <[email protected]>";
drupal_mail('contact', 'page_mail', $to, language_default(), $values, $from);

print $to; #=> "Another O'Neil" <[email protected]>
2
berkes