整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

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

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

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

          1、Composer 安裝 phpmailer

          2、ThinkPHP 中封裝郵件服務類

          我把它封裝在擴展目錄 extend/Mail.php 文件里,內容如下:

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

          上面需要的一些配置參數,我把它們放在擴展配置目錄 application/extra/mail.php 文件里 ,內容如下:

          注意:一般默認端口 25。如果使用了安全協議 ssl,那么端口號一般是 465 或 587。譬如 126 郵箱。

          更多配置參數,可以看看源碼:https://github.com/PHPMailer/PHPMailer/blob/master/class.phpmailer.php

          3、測試


          這里我使用 126 郵箱,安全協議 ssl,端口號 465,發送 html 內容,測試成功:

          參考鏈接:

          phpmail 的 STMP 郵件實例:https://github.com/PHPMailer/PHPMailer/blob/master/examples/smtp.phps

          項目當中有很多時候都需要郵箱提醒,那么郵箱提醒功能是怎么做的呢,下面我以實際的例子作為介紹。

          1、既然要發送郵箱,就要準備一個發送端的郵箱,我通常都是用QQ郵箱,所以就以QQ郵箱作為服務端的郵箱,其他郵箱的設置都是大同小異。

          登錄QQ郵箱找到設置一欄,開啟POP3/SMTP服務,這里我已經開啟了,具體的開啟方法可以按照提示操作,開啟之后還需要生成一個授權碼,這個授權碼在發送端的代碼是必傳的參數之一,到這里準備工作就算做好了,剩下的就是開始寫代碼。

          2、發送郵件需要引用PHPMailer的類文件,所以在網上搜索phpemail并下載類文件,然后就是在所需代碼中引用調用。

          具體代碼如下:

          /**
           * 郵件發送函數
           */
          function sendMail($to, $title, $content) {
              $email=[
                  "smtpname"=>"smtp.qq.com",
                  "email"=>"906556946@qq.com",
                  "username"=>"動力3023",
                  "password"=>"",//授權碼
              ];
              require('./vendor/PHPMailer/PHPMailerAutoload.php');
              $mail=new \PHPMailer(); //實例化
              
              $mail->IsSMTP(); // 啟用SMTP
              $mail->Host=$email['smtpname']; //smtp服務器的名稱(這里以QQ郵箱為例)
              $mail->Username=$email['email']; //你的郵箱名
              $mail->Password=$email['password'] ; //授權碼,注意不是登錄密碼
              $mail->From=$email['email']; //發件人地址(也就是你的郵箱地址)
              $mail->FromName=$email['username']; //發件人姓名
              $mail->SMTPAuth=true; //啟用smtp認證
              $mail->SMTPSecure='ssl';
              $mail->Port=465;
              $mail->AddAddress($to,"尊敬的客戶");
              $mail->WordWrap=50; //設置每行字符長度
              $mail->IsHTML(true); // 是否HTML格式郵件
              $mail->CharSet='utf-8'; //設置郵件編碼
              $mail->Subject=$title; //郵件主題
              $mail->Body=$content; //郵件內容
              $mail->AltBody="這是一個純文本的身體在非營利的HTML電子郵件客戶端"; //郵件正文不支持HTML的備用顯示
              
              return($mail->Send());
          }
          
          $res=sendMail('906556946@qq.com', '網站留言', '留言成功');

          發送的內容樣式是可以自定義的,如果需要的話可以直接寫html樣式,比如這樣:

          郵箱中收到郵件的截圖:

          《完》

          大家如果喜歡的話麻煩點贊、關注、轉發,謝謝大家。

          用戶在 HTML 表單中填寫并提交數據時,可以使用 PHP 來接收并處理這些數據。要實現這一點,需要創建一個 PHP 腳本來處理提交的數據,然后將 HTML 表單的 "action" 屬性設置為該腳本的文件路徑。表單提交的數據需要進行驗證和過濾,以確保數據的完整性和安全性。可以使用條件語句、正則表達式、過濾器函數等方法來驗證和過濾數據,并使用 htmlspecialchars() 函數轉義 HTML 標記,以防止 XSS 攻擊。

          以下是一個簡單的示例:

          HTML 表單代碼:

          <form action="submit.php" method="post">

          <label for="name">Name:</label>

          <input type="text" id="name" name="name">

          <label for="email">Email:</label>

          <input type="email" id="email" name="email">

          <button type="submit">Submit</button>

          </form>

          PHP 代碼(submit.php):

          <?php

          // 獲取表單提交的數據

          $name=$_POST['name'];

          $email=$_POST['email'];

          // 在這里進行處理,例如將數據存儲到數據庫中

          // ...

          // 返回一個響應,告訴用戶數據已經被成功提交

          echo "Thank you for submitting the form, $name!";

          ?>

          在上面的示例中,表單的 "action" 屬性設置為 "submit.php",這意味著提交表單時,數據將被發送到 submit.php 文件中的 PHP 代碼中進行處理。PHP 代碼使用 $_POST 數組來獲取表單提交的數據,然后進行處理,例如將數據存儲到數據庫中。最后,PHP 代碼返回一個響應,告訴用戶數據已經被成功提交。在處理表單數據時,一定要對用戶輸入進行驗證和過濾,以防止安全漏洞。

          需要對表單提交的數據進行驗證和過濾,以確保數據的完整性和安全性。以下是一些常見的方法:

          1、驗證表單字段:在 PHP 代碼中使用條件語句和正則表達式等方法來驗證表單字段的有效性,例如驗證電子郵件地址的格式是否正確。

          $email=$_POST['email'];

          if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

          // 如果郵件地址格式不正確,則顯示錯誤消息

          echo "Invalid email address";

          }

          2、過濾輸入數據:使用 PHP 中的過濾器函數來過濾表單輸入數據,以防止 XSS 攻擊和 SQL 注入等安全漏洞。

          $name=$_POST['name'];

          $name=filter_var($name, FILTER_SANITIZE_STRING); // 過濾特殊字符和標簽

          3、防止跨站腳本攻擊(XSS):在 PHP 代碼中使用 htmlspecialchars() 函數來轉義 HTML 標記,防止惡意腳本注入到頁面中。

          $name=$_POST['name'];

          $name=htmlspecialchars($name, ENT_QUOTES, 'UTF-8'); // 轉義 HTML 標記

          4、防止 SQL 注入攻擊:在 PHP 代碼中使用參數化查詢或準備語句來執行數據庫操作,以防止惡意 SQL 語句注入到數據庫中。

          $stmt=$pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");

          $stmt->bindParam(':name', $name);

          $stmt->bindParam(':email', $email);

          $stmt->execute();

          通過這些方法,可以確保表單提交的數據是安全和有效的,并且能夠正常地處理和存儲到數據庫中。


          主站蜘蛛池模板: 亚洲一区二区三区高清不卡| 日韩精品无码视频一区二区蜜桃| 真实国产乱子伦精品一区二区三区| 亚洲Av无码一区二区二三区| 人妻天天爽夜夜爽一区二区| 无码一区二区三区在线观看| 亚洲中文字幕丝袜制服一区 | 天堂一区二区三区精品| 精品国产aⅴ无码一区二区| 国产福利91精品一区二区三区| 亚洲国产激情一区二区三区| 亚洲综合在线一区二区三区| 波多野结衣在线观看一区二区三区| 国产一区二区三区在线观看影院| 精品乱子伦一区二区三区高清免费播放| 国产精品小黄鸭一区二区三区| 在线观看国产一区| 日韩人妻不卡一区二区三区| 亲子乱av一区区三区40岁| 日韩一区二区三区视频久久| 久久一区二区三区精品| 一区二区国产在线观看| 欧美一区内射最近更新| 台湾无码一区二区| 中文无码AV一区二区三区| 日韩精品一区二区三区中文版| 亚洲bt加勒比一区二区| 亚洲AV永久无码精品一区二区国产 | 精品国产一区二区三区AV性色| 3D动漫精品一区二区三区| 国产av成人一区二区三区| 冲田杏梨高清无一区二区| 日韩aⅴ人妻无码一区二区| 午夜福利无码一区二区| 亚洲成AV人片一区二区| 无码国产精品一区二区免费vr| 精品一区二区久久| 日韩中文字幕一区| 国产一区二区好的精华液| 亚洲欧美国产国产一区二区三区| 色欲综合一区二区三区|