2016-11-17 63 views
1

我送與CakePHP的電子郵件和我一直在與followign網站測試它: http://spamcheck.postmarkapp.com/CakePHP的郵件編碼對象給出錯誤的字符

我有幾個問題,它們中的哪一個是對象的編碼。

現在,一個解決方案,遵循我在互聯網上找到的一些解決方案。代碼的第一行就是我與主題

這裏做什麼是我的代碼:

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

$email = new Email('aws'); 
    $email->from(['[email protected]' => 'test']) 
    ->template('default','confirmation') 
    ->viewVars([ 
     'user_email' => $emailTo, 
    ]) 
    ->emailFormat('both') 
    ->to($emailTo) 
    ->subject($newsubject) 
    ->replyTo('[email protected]') 
    ->helpers(['Html', 'Text']) 
    //->attachments($attachment->path) 
    ->send($message); 

我收到的電子郵件後,受試者顯示:「= UTF-的8B SW5zY3Jpw6fDo28gbm8gZXZlbnRvOiBOYXRpb25hbCBDb25mZXJlbmNlIG9uIEh1bWFuIFBhcGlsbG9tYSBWaXJ1cw =??? =?=「

我錯過了什麼?

編輯:

我使用CakePHP 3.3,這裏是我的AWS郵件轉運的配置

'aws' => [ 
     'transport' => 'aws', 
     'from' => '[email protected]', 
     'charset' => 'utf-8', 
     'headerCharset' => 'utf-8', 
    ] 

這裏是我的電子郵件:

http://pastie.org/private/hzcicqrlzx425ucanxyl5a

感謝

+0

我不明白的細節,爲什麼主體不僅是一個字符串?你base64編碼你的字符串,並添加UTF-8字符當然結果就是你得到的結果 –

+0

@YannChabot沒有編碼,我得到的主題正確的電子郵件(Inscriçono evento:...),但測試該網站上的電子郵件,它說: 1.1 SUBJ_ILLEGAL_CHARS主題:有太多的原始非法字符和0。1 SUBJECT_NEEDS_ENCODING主體被編碼但沒有指定編碼 – Cafn

+0

我想你想要的是utf8_encode也許? –

回答

1

關於結果:

  • 您與base64編碼的電子郵件Subject文本。
  • 因此,您從Subject純文本中獲得encoded文本。

您應該使用電子郵件作爲Subject串/純文本。郵件服務沒有decode您的自定義encode類型。通過鍵入從config/app.phpEmailTransportEmail

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

搜索和檢查你的電子郵件的配置是否正確配置:

更改Subject字符串。

她大約是CakePHP 3.x Email