1. 程式人生 > >Yii2之mailer的使用

Yii2之mailer的使用

-h 管理系統 end 進行 subject imap swift eth enc

   Mailer組件是yii框架自帶的用於收發郵件的組件,無需安裝,只需做一些配置即可使用,非常便捷。本文就mailer組件從配置到使用進行簡單講解。

   首先在config/main.php配置如下:

return [
	 ‘components‘ => [
		  ‘mailer‘ => [
			   ‘class‘ => ‘yii\swiftmailer\Mailer‘,
			   ‘viewPath‘ => [email protected]/mail‘,
			   ‘useFileTransport‘ => false,
			   ‘transport‘ => [
					‘class‘ => ‘Swift_SmtpTransport‘,
					‘host‘ => ‘smtp.qq.com‘,//服務器根據不同郵箱類型而定,這裏以qq郵箱為例
					‘username‘ => [email protected]
/* */,//發送者郵箱地址 ‘password‘ => ‘vwwujuntianwefwefa‘,//SMTP密碼 ‘port‘ => ‘25‘, ‘encryption‘ => ‘tls‘ ] ] ] ];

這裏要選擇一個郵箱作為發送方,其中username設置發送方郵箱地址,可以在config/params.php文件中配置一個supportEmail參數指定為這個郵箱地址,

下面直接使用Yii::$app->params[‘supportEmail‘]來表示這個郵箱地址。password參數設置的是SMTP密碼,可以在郵箱界面上查看,如果是

qq郵箱的話,

依次點擊“設置”-》“賬戶”,在“開啟服務”中開啟“IMAP/SMTP服務”就會彈出窗口告訴你SMTP密碼,直接復制粘貼到配置文件中即可。

配置好之後就可以使用了,使用方法如下:

$mailer = Yii::$app->mailer->compose();
$mailer->setFrom(Yii::$app->params[‘supportEmail‘]);//發送者
$mailer->setTo([email protected]);//接收者
$mailer->setSubject(‘收到了嗎‘);//郵件標題
$mailer->setHtmlBody(‘hello,wujuntian先生,請問您收到郵件了嗎??‘);//郵件正文內容
$status = $mailer->send();//發送,成功則返回1

以上方法使用setHtmlBody()方法設置郵件正文內容,若郵件內容比較多,你也可以將郵件內容單獨寫成視圖文件,然後在compose方法中指定作為

郵件內容的視圖,使用方法如下:

Yii::$app->mailer->compose(
                [‘html‘ => ‘passwordResetToken-html‘, ‘text‘ => ‘passwordResetToken-text‘],//指定視圖
                [‘****‘ => ****]//這裏可以傳一些視圖需要的參數
            )
            ->setFrom([Yii::$app->params[‘supportEmail‘] => ‘個人管理系統‘])
            ->setTo($this->email)
            ->setSubject(‘你好嗎?’)
            ->send();

註意,在compose()方法中指定的視圖文件‘passwordResetToken-html’對應的是’config/mail/passwordResetToken-html.php’這個文件。

Yii2之mailer的使用