我发送带有cakephp的电子邮件,我一直在使用followign网站进行测试: 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' => [
'transport' => 'aws',
'from' => 'xxxx@zzzzz.z',
'charset' => 'utf-8',
'headerCharset' => 'utf-8',
]
这是我的电子邮件:
http://pastie.org/private/hzcicqrlzx425ucanxyl5a
由于
答案 0 :(得分:1)
关于结果:
Subject
对电子邮件base64
文字进行了编码。encoded
纯文本中获取Subject
文字。您应该使用电子邮件
Subject
作为字符串/纯文本。邮件服务不会自动decode
您的自定义encode
类型。
更改Subject
字符串:
$newsubject='=?UTF-8?B?'.base64_encode($subject).'?=';
#TO
$newsubject=$subject;
的详细信息从
EmailTransport
键入config/app.php
进行搜索,并检查您的电子邮件配置是否已正确配置。