When using drupal_mail to send an email, I get errors when display names (not emails) contain apostrophes in the "To" field.

For example, referring to drupal_mail() documentation, email addresses like "Another User <[email protected]>" are valid. "Another User <[email protected]>" validates perfectly, but "Another O'Neil <[email protected]>" fails.

Do I need to change the last name to ONeil instead of O'Neil, or can escape it somehow?
I have also tried ""Another O'Neil" <[email protected]>" without success.

  • Setup: Ubuntu 11.04 LTS
  • Drupal Version: 7.x
  • Mail Service: Amazon SES
  • Additional Mail Modules: "HTML Mail" and "Mail System"

1 Answer 1


I assume a few things:

  • You have no exotic mail transport installed, having Drupal fallback to phps' mail()
  • You deliver the mail trough a unix system. Windows deals differently with mail.

Digging into RFC2822 you will find about escaping " and some other characters.

The solution then presents itself as

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

print $to; #=> "Another O'Neil" <[email protected]>
  • Good assumptions. :) Will add to original question in a moment for future searchers. An elegant solution to an annoying problem. Thank you. :)
    – Citricguy
    Commented Aug 31, 2011 at 10:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.