我用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
中输入EmailTransport
或
下面是CakePHP 3的详细信息。x邮件