知識點:郵件相關的協議:php
smtp:發郵件,端口:25html
pop3:收郵件,端口:110服務器
1、要有郵件服務器socket
本身搭建一個郵箱服務器函數
使用現有的:126、163等等。ui
163發郵件的接口:smtp.163.com ssl://smtp.qq.com編碼
2、在163註冊一個郵箱帳號spa
在php中發送郵件使用一個 phpmailer的類。htm
注意事項: 接口
啓用fsockopen函數
首先,在php.ini中去掉下面的兩個分號
複製代碼 代碼示例:
extension=php_sockets.dll
extension=php_openssl.dll
代碼案例:
<?php
require 'PHPMailer/class.phpmailer.php';
$mail = new PHPMailer();
/*服務器相關信息*/
$mail->IsSMTP(); //設置使用SMTP服務器發送
$mail->SMTPAuth = true; //開啓SMTP認證
$mail->Host = 'smtp.163.com'; //設置 SMTP 服務器,本身註冊郵箱服務器地址
$mail->Username = 'lau0400810121'; //發信人的郵箱名稱
$mail->Password = 'lau13142yun'; //發信人的郵箱密碼
/*內容信息*/
$mail->IsHTML(true); //指定郵件格式爲:html
$mail->CharSet ="UTF-8"; //編碼
$mail->From = 'lau0400810121@163.com'; //發件人完整的郵箱名稱
$mail->FromName = '地球球長委員會'; //發信人署名
$mail->Subject = "地球的球長選舉"; //信的標題
$mail->MsgHTML("尊敬的用戶:明天開會,會後,我請客"); //發信主體內容
/*發送郵件*/
$mail->AddAddress(「18665455185@163.com"); //收件人地址
//使用send函數進行發送
if($mail->Send()) {
echo 'ok ok';
} else {
echo $mail->ErrorInfo;//若是發送失敗,則返回錯誤提示
}
做業案例
完成用戶註冊完成後,要經過郵箱驗證。若是用戶密碼忘了,能夠經過郵箱找回密碼
create table ci_user1(
id int primary key auto_increment,
username varchar(32) not null comment '用戶的名稱',
password char(32) not null comment '用戶的密碼',
active tinyint not null default 0 comment '激活的標誌,0表示沒有激活,1表示已經激活',
validate varchar(32) not null comment '激活的用戶的校驗碼',
question varchar(32) not null comment '問題的名稱',
answer varchar(32) not null comment '問題的答案'
)
完成用戶註冊,找回密碼案例