ThinkPHP5郵件傳送服務封裝(可發附件)

2022-10-06 06:27:10 字數 1954 閱讀 6132

1.composer安裝phpmailer

composer require phpmailer/phpmailer

2.thinkphp中封裝郵件服務類

我把它封裝在擴充套件目錄 extend/mail.php 檔案裡,內容如下:

<?php /**

* 郵件服務類

*/class mail extends \phpmailer

/*** 傳送郵件

* @param [type] $tomail 收件人位址

* @param [type] $toname 收件人名稱

* @param [type] $subject 郵件主題

* @param [type] $content 郵件內容,支援html

* @param [type程式設計客棧] $attachment 附件列表。檔案路徑或路徑陣列

* @return [type] 成功返回true,失敗返回錯誤訊息

*/function sendmail($tomail, $toname, $subject, $content, $attachment = null)

else if(is_array($attachment))

}

}if(!$this->send())

else

}}注意:如果傳送附件,建議使用英文路徑。中文路徑可能會導致附件傳送失敗,收到的郵件沒有附件。

上面需要的一些配置引數,我把它們放在擴充套件配置目錄 application/extra/mail.php 檔案裡 ,內容如下:

<?php /**

* 郵件服務相關配置

*/return [

'charset' => 'utf-8', // 郵件編碼

'smtp_debug' => 0, // debug模式。0: 關閉,1: 客戶端訊息,2: 客戶端和伺服器訊息,3: 2和連線狀態,4: 更詳細

'debug_output' => 'html', // debug輸出型別。`echo`(預設),`html`,或`error_log`

'host' => 'smtp.126.com', // smtp伺服器位址

'port' => 465, // 埠號。預設25

'smtp_auth' => true, // 啟用smtp認證

'smtp_secure' => 'ssl', // 啟用安全協議。''(預設),'ssl'或'tls',留空不啟用

'username' => '[email protected]', // smtp登入郵箱

'password' => 'yourpassword', // smtp登入密碼。126郵箱使用客戶端授權碼,qq郵箱用獨立密碼

'from' => '[email protected]', // 發件人郵箱

'from_name' => 'name', // 發件人名稱

'reply_to' => '', // 回覆郵箱的位址。留空取發件人郵箱

'reply_to_name' => '', // 回覆郵箱人名稱。留空取發件人名稱

];注意:一般預設埠 25。如果使用了安全協議 ssl,那麼埠號一般是 465 或 587。譬如 126 郵箱。建議使用安全協議,因為像阿里雲伺服器就禁止了非安全協議的 25 埠。

更多配置引數,可以看看原始碼: 

3.測試

在控制器裡方法裡,新增測試**:

public function mail()

這裡我使用 126 郵箱,安全協議 ssl,埠號 465,傳送 html 內容,測試成功:

參考鏈結:phpmail 的 smtp 郵件實vqeuqnvnx例

本文位址: /wangluo/php/209474.html

Thinkphp如何傳送郵件。

thinkphp如何傳送郵件。搜尋phpmailer,點第二個進去 可以直接複製這段簡單的案例 下面這段 是我測試郵件用的 有備註了詳細注釋的 應用公共檔案 use phpmailer phpmailer phpmailer 這個是發郵件的類,引入進來 use phpmailer phpmailer...

ThinkPHP5使用快取

cache 使用復合快取型別 type complex 預設使用的快取 default 驅動方式 type file 在這設定換人的快取方式 快取儲存目錄 path cache path,檔案快取 file 驅動方式 type file 設定不同的快取儲存目錄 path runtime path f...

thinkphp5內建標籤

知道內建標籤怎麼用,查手冊的時候好查 卻功能的時候在裡面找著來用 1 內建標籤23 變數輸出使用普通標籤就足夠了,但是要完成其他的控制 迴圈和判斷功能,就需要借助模板引擎的標籤庫 4功能了,系統內建標籤庫的所有標籤無需引入標籤庫即可直接使用。5內建標籤包括 6標籤名作用包含屬性 7include 包...