SwiftMessage:配置utf8地址编码器的简单方法

时间:2019-07-11 16:06:53

标签: php swiftmailer

我正在使用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();

在此先感谢您能提供的帮助:)

0 个答案:

没有答案