利用郵件服務商的IMAP/SMTP 服務,這里我們用163郵箱在說明一下,實現發送郵件功能的流程
1.登入163郵箱在設置里開啟IMAP/SMTP 服務
2.在客戶端授權密碼設置授權密碼(需要手機驗證), POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務。
3. 確認php.ini中;extension=php_openssl.dll是否開啟, 沒有則添加extension=php_openssl.dll。
4.選擇php自帶函數mail() 或者PHPMaile第三方的類進行發送郵件,下面介紹第一種自帶mail()
一:
/*需要添加一個發送郵件的代理在config配置文件中*/
'MAIL_ADDRESS' => '****@163.com', // 初始化郵箱地址
'MAIL_SMTP' => 'smtp.163.com', // 初始化郵箱SMTP服務器
'MAIL_LOGINNAME' => '****@163.com', // 初始化郵箱登錄帳號
'MAIL_PASSWORD' => '****', // 初始化郵箱密碼
'MAIL_CHARSET' => 'UTF-8', //編碼
'MAIL_AUTH' => true, //郵箱認證
'MAIL_HTML' => true, //true HTML格式 false TXT格式
/*以下是控制器中的使用*/
import('Org.Util.Mail');//導入郵件類
$sendTitle="郵件標題";//郵件標題
$sendData="郵件內容,可以使用html代碼";//發送內容
$toMail="xxxxx@163.com";//收件人
$theme="留言反饋郵件";//郵件主題
SendMail($toMail,$sendTitle,$sendData,$theme);
二、
* phpemail郵件發送服務類,下載的phpmail把src時的文件放入指定文件夾,同時修改去除PHPMailer.php和SMTP.php時的命名空間即可
* 庫下載地址:https://github.com/PHPMailer/PHPMailer
這是封裝的一個類
class SendemailService {
function __construct() {
$config = array(
'MAIL_CHARSET' => 'UTF-8',
'MAIL_SMTPAUTH' => true, //是否使用身份驗證
'MAIL_ISHTML' => true, //是否使用html
'MAIL_USERNAME' => '', //發件地址
'MAIL_SMTPHOST' => '', //smtp地址
'MAIL_PASSWORD' => '', //發件地址密碼
'MAIL_SMTPSECURE' => '', //使用ssl協議方式,ssl協議方式端口號是465/994
'MAIL_PORT' => '25', //端口
'MAIL_GET_ADDRESS' => '', //默認單一收件箱
);
$this->mailconfig = $config;
}
/**
* 發送郵件
* @param $get_email
* @param $data array('title'=>'','detail'=>'')
* @return bool
*/
public function sendEmail($data, $get_email = '') {
vendor('PHPMailer.PHPMailer');
vendor('PHPMailer.SMTP');
$mail = new \PHPMailer();
$mail = $this->setBaseConfig($mail, $data, $get_email);
if (!$mail->send()) {
return "Mailer Error: " . $mail->ErrorInfo; //返回錯誤信息
} else {
return 0; //為0表示發送成功
}
}
/**
* 郵件基本設置
* @param $mail
* @param $data
* @param string $get_email
* @return mixed
*/
public function setBaseConfig($mail, $data, $get_email = '') {
$config = $this->mailconfig;
$get_email = $get_email ? $get_email : $config['MAIL_GET_ADDRESS'];
$mail->isSMTP(); // 使用SMTP服務
$mail->CharSet = "utf8"; // 編碼格式為utf8,不設置編碼的話,中文會出現亂碼
$mail->Host = $config['MAIL_SMTPHOST']; // 發送方的SMTP服務器地址
$mail->SMTPAuth = $config['MAIL_SMTPAUTH']; // 是否使用身份驗證
$mail->Username = $config['MAIL_USERNAME']; // 發送方的163郵箱用戶名
$mail->Password = $config['MAIL_PASSWORD']; // 發送方的郵箱密碼,注意用163郵箱這里填寫的是“客戶端授權密碼”而不是郵箱的登錄密碼!
$mail->SMTPSecure = $config['MAIL_SMTPSECURE']; // 使用ssl協議方式
$mail->Port = $config['MAIL_PORT']; // 163郵箱的ssl協議方式端口號是465/994
$mail->IsHTML($config['MAIL_ISHTML']); //支持html格式內容
$mail->setFrom($config['MAIL_USERNAME'], ''); // 設置發件人信息,如郵件格式說明中的發件人,這里會顯示為Mailer(xxxx@163.com),Mailer是當做名字顯示
$mail->addAddress($get_email, ''); // 設置收件人信息,如郵件格式說明中的收件人,這里會顯示為Liang(yyyy@163.com)
//$mail->addReplyTo("","王");// 設置回復人信息,指的是收件人收到郵件后,如果要回復,回復郵件將發送到的郵箱地址
//$mail->addCC("1132083961@qq.com"); // 設置郵件抄送人,可以只寫地址,上述的設置也可以只寫地址
//$mail->addBCC("");// 設置秘密抄送人
//$mail->addAttachment("bug0.jpg");// 添加附件
$mail->Subject = $data['title']; // 郵件標題
$mail->Body = $data['detail']; // 郵件正文
//$mail->AltBody = "This is the plain text純文本";// 這個是設置純文本方式顯示的正文內容,如果不支持Html方式,就會用到這個,基本無用
return $mail;
}
}
調用方法
$mail=new \Fwadmin\Service\SendemailService();
$send['title']=$title;
$send['detail']=$content;
$flag=$mail->sendEmail($send,$email);
以上就是關于網站制作之PHP發送系統郵件(南京網站制作),希望對你有幫助,更多內容關注創新互聯。
新聞標題:網站制作之PHP發送系統郵件(南京網站制作)
文章分享:http://m.newbst.com/news44/310044.html
成都網站建設公司_創新互聯,為您提供網站維護、微信小程序、做網站、定制網站、網站制作、云服務器
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯