Yii2.0 發送郵件報錯處理

Exception 'Swift_TransportException' with message 'Expected response code 250 but got code "554", with message "554 DT:SPM 163 smtp4,HNxpCgBXZi_apLL2Cw--.98S2 1570532049,please see http://mail.163.com/help/help_spam_16.htm?ip=221.216.238.192&hostid=smtp4&time=1570532049

/**
* 框架Yii 2.0
* 發送郵件配置代碼
*/
'mailer' => [
      'class' => 'yii\swiftmailer\Mailer',
      'useFileTransport' => false, 
      'viewPath' => '@common/mail',
      'transport' => [
          'class' => 'Swift_SmtpTransport',
          'host' => 'smtp.163.com', //不同的郵箱host配置不一樣
          'username' => '[email protected]',
          'password' => '***',
          'port' => '465',
          'encryption' => 'ssl',
       ],
       'messageConfig' => [
          'charset' => 'UTF-8',
          'from' => ['[email protected]' => '****'],
       ]
 ]

/**
* 發送郵件代碼
*/
$content = '<p>13:58發送的內容</p><p><img src="http://pic26.nipic.com/20121221/9252150_142515375000_2.jpg" width="101" height="153" style="width: 101px; height: 153px;"></p><p>試試圖片</p>';
$ret = \Yii::$app
      ->mailer
      ->compose()
      ->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name])
      ->setTo(['[email protected]'])
      ->setSubject('測試代碼')
      ->setHtmlBody($content)
      ->send();

獲取以上錯誤信息:有兩種更可能

1、先檢查yii2.0 common\config\params.php

return [
    'supportEmail' => '***@163.com',
    'senderEmail' => '***@163.com',
];

這兩項要保證設置爲跟你郵件發送裏面的發送者一致。如果檢查完之後忍讓報錯,請使用第二種方法

2、改寫一下郵件發送代碼?

$ret = \Yii::$app
     ->mailer
     ->compose('test', ['content' => $content])
     ->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name])
     ->setTo(['[email protected]'])
     ->setSubject('我們去哪裏了?')
     // ->setHtmlBody($content)
     ->send();

模板代碼

<?= $content ?>

這樣就能發送了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章