Cakephp电子邮件编码主题给出错误的字符


Cakephp email Encoding subject gives wrong characters

我用cakephp发送电子邮件,我一直在测试它与以下网站:http://spamcheck.postmarkapp.com/

我有几个问题,其中一个是主题的编码。

现在,这个问题已经解决了,我在网上找到了一些解决方案。第一行代码是我对主题

所做的事情

下面是我的代码:

$newsubject='=?UTF-8?B?'.base64_encode($subject).'?=';
$email = new Email('aws');
    $email->from(['xxxx@zzzz.zz' => 'test'])
    ->template('default','confirmation')
    ->viewVars([
        'user_email' => $emailTo,
    ])
    ->emailFormat('both')
    ->to($emailTo)
    ->subject($newsubject)
     ->replyTo('support@uphill.pt')
    ->helpers(['Html', 'Text'])
    //->attachments($attachment->path)
    ->send($message);

收到邮件后,主题显示:"=?UTF-8?B?SW5zY3Jpw6fDo28gbm8gZXZlbnRvOiBOYXRpb25hbCBDb25mZXJlbmNlIG9uIEh1bWFuIFBhcGlsbG9tYSBWaXJ1cw==?"= "

我错过了什么?

编辑:

我使用的是Cakephp 3.3,这是我的aws电子邮件传输配置

'aws' => [
        'transport' => 'aws',
        'from' => 'xxxx@zzzzz.z',
        'charset' => 'utf-8',
        'headerCharset' => 'utf-8',
    ]

我的邮箱地址:

http://pastie.org/private/hzcicqrlzx425ucanxyl5a

谢谢

的结果:

  • 你用base64编码了邮件的Subject文本。
  • 因此,您从Subject纯文本中获得encoded文本。

您应该使用电子邮件Subject作为字符串/纯文本。邮件服务不会自动decode您的自定义encode类型。

更改Subject字符串:

$newsubject='=?UTF-8?B?'.base64_encode($subject).'?=';
#TO
$newsubject=$subject;

config/app.php中输入EmailTransportEmail进行搜索,检查您的电子邮件配置是否正确配置。

下面是CakePHP 3的详细信息。x邮件

相关文章: