我正在使用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();
在此先感谢您能提供的帮助:)