SwiftMessage: простой способ настройки кодировщика адресов utf8 - PullRequest
1 голос
/ 11 июля 2019

Я использую SwiftMailer 6.1 (последний на данный момент) для генерации сообщений электронной почты RFC 822.По умолчанию он использует IdnEncoder для адресов электронной почты, и этот код вызывает ошибку:

$message = new Swift_Message();
$message->addTo('straße@germany.de');
echo $message->toString();

// Swift_AddressEncoderException in IdnAddressEncoder.php line 40: Non-ASCII characters not supported in local-part

Я пытаюсь определить лучший / рекомендуемый / самый простой способ его настройки.

Мой лучшийПопытка использовать систему зависимостей SwiftMailer для изменения поведения, но это выглядит немного запутанным / не оптимальным.Можем ли мы сделать лучше?

$dependencies = Swift_DependencyContainer::getInstance();

$dependencies->register('mime.headerfactory')
    ->asNewInstanceOf('Swift_Mime_SimpleHeaderFactory')
    ->withDependencies([
        'mime.qpheaderencoder',
        'mime.rfc2231encoder',
        'email.validator',
        'properties.charset',
        'address.utf8addressencoder', // default is 'address.idnaddressencoder'
    ]);

$message = new Swift_Message();
$message->addTo('straße@germany.de');
echo $message->toString();

Заранее спасибо, если кто-нибудь может помочь:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...