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
項目當中有很多時候都需要郵箱提醒,那么郵箱提醒功能是怎么做的呢,下面我以實際的例子作為介紹。
登錄QQ郵箱找到設置一欄,開啟POP3/SMTP服務,這里我已經開啟了,具體的開啟方法可以按照提示操作,開啟之后還需要生成一個授權碼,這個授權碼在發送端的代碼是必傳的參數之一,到這里準備工作就算做好了,剩下的就是開始寫代碼。
具體代碼如下:
/**
* 郵件發送函數
*/
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();
通過這些方法,可以確保表單提交的數據是安全和有效的,并且能夠正常地處理和存儲到數據庫中。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。