Exibir caracteres especiais corretamente (por exemplo, umlaute alemão ä, ö, ü) em e-mails pode ser complicado. O manual do Zend Framework 2 (ZF2) sugere a chamada
ZendMailMessage::setEncoding('UTF-8');
Isso funciona corretamente em alguns clientes de e-mail (por exemplo, Gmail), mas outros clientes podem bagunçar os caracteres especiais ou até mesmo não exibir a marcação html corretamente. O seguinte código ZF2 define o cabeçalho do e-mail do tipo de conteúdo e o conjunto de caracteres UTF-8 corretamente para e-mails html:
/** @var ZendMailMessage $mail */
// Setup mail with html markup
$mail->setSubject($subject);
$html = new ZendMimePart($text);
$html->type = 'text/html';
$body = new ZendMimeMessage;
$body->setParts(array($html));
$mail->setBody($body);
// Set UTF-8 charset
$headers = $mail->getHeaders();
$headers->removeHeader('Content-Type');
$headers->addHeaderLine('Content-Type', 'text/html; charset=UTF-8');