【问题标题】:Cakephp email Encoding subject gives wrong charactersCakephp 电子邮件编码主题给出了错误的字符
【发布时间】:2017-04-01 07:18:42
【问题描述】:

我正在使用 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编码你的字符串并添加UTF-8字符当然结果就是你得到的
  • @YannChabot 没有编码,我在电子邮件上得到正确的主题(Inscrição no evento: ...)但在该网站上测试电子邮件,它说:1.1 SUBJ_ILLEGAL_CHARS 主题:有太多原始非法个字符和 0.1 SUBJECT_NEEDS_ENCODING 主题已编码但未指定编码
  • 我想你想要的是 utf8_encode 吧?
  • base64_ENCODE:此编码旨在使二进制数据能够通过非 8 位干净的传输层(例如邮件正文)进行传输。 Base64 编码的数据比原始数据多占用大约 33% 的空间。
  • 使用 UTF_8,主题如下:“=?UTF-8?B?Inscrição no evento”。编辑:这样称呼它:“utf8_encode('=?UTF-8?B?'.$subject.'?=')”。如果我在开始时删除 UTF 部分,它会再次显示 SUBJECT_NEEDS_ENCODING(如果我只编码主题变量,则相同)

标签: php email cakephp


【解决方案1】:

关于结果:

  • 您将电子邮件Subject 文本编码为base64
  • 因此,您可以从 Subject 纯文本中获取 encoded 文本。

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

更改您的 Subject 字符串:

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

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

她是CakePHP 3.x Email的详细信息

【讨论】:

    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 2011-11-20
    • 2013-02-22
    • 2015-04-25
    • 1970-01-01
    • 2012-01-11
    相关资源
    最近更新 更多