mail()函數的作用:連接到郵件服務器,利用smtp協議,與該服務器交互並投郵件。
注意:
1、mail函數不支持esmtp協議,---即,只能直投,不能登陸
2、由上條,我們只能直投至最終的收件服務器地址.而該地址,又是在PHP.ini中指定的,所以我們想用mail()函數往 [email protected]發信的話,我們要---
1)查詢163郵件服務器的地址
2)把該地址寫到php.ini裡去
php實例代碼如下:
SMTP = 163mx02.mxmail.netease.com sendmail_from = [email protected] var_dump(mail('[email protected]','from php mail function','very intresting'));
但是使用php自帶的mail函數發送郵件我們需要在linux中安裝一個sendmail組件才可以否則無法使用。
如果你沒有這個sendmail組件我們可以使用phpmailer函數來操作,例子代碼如下:
<?php require('./PHPMailer/class.phpmailer.php'); $phpmailer = new PHPMailer(); $phpmailer->IsSMTP(); $phpmailer->Host = 'smtp.163.com'; $phpmailer->SMTPAuth = true; $phpmailer->Username = ''; $phpmailer->Password = ''; $phpmailer->CharSet = 'utf-8'; $phpmailer->From = ''; $phpmailer->FromName = ''; $phpmailer->Subject = ''; $phpmailer->Body = ''; $phpmailer->AddAddress('[email protected]','Aseoe'); echo $phpmailer->send()?'發送成功':'發送失敗'; ?>
上面不帶內容,面看個帶內容的,代碼如下:
<?php /** 用PHPMailer類來發信 步驟: 0: 引入 1: 實例化 2: 配置屬性 3: 調用發送 **/ require('./PHPMailer/class.phpmailer.php'); $phpmailer = new PHPMailer(); /* 設置phpmailer發信用的方式 可用用win下mail()函數來發 可以用linux下sendmail,qmail組件來發 可以利用smtp協議登陸到某個賬戶上,來發 */ $phpmailer->IsSMTP(); // 用smtp協議來發 $phpmailer->Host = 'smtp.163.com'; $phpmailer->SMTPAuth = true; $phpmailer->Username = ''; //發送郵箱的賬號(用163郵箱發信的賬號) $phpmailer->Password = ''; //發送郵箱的密碼 // 可以發信了 $phpmailer->CharSet='utf-8'; $phpmailer->From = '[email protected]'; $phpmailer->FromName = 'neverkill'; $phpmailer->Subject = 'Superstart Aseoe'; $phpmailer->Body = '(http://www.jb51.net 專注前端開發與編程設計.'; //設置收信人 $phpmailer->AddAddress('[email protected]','neverkill'); // 添加一個抄送 $phpmailer->AddCC('1234567','Aseoe'); // 發信 echo $phpmailer->send()?'ok':'fail';
補充一個使用上面例子的方法:
直接將phpmailer壓縮包解壓放到根目錄即可運行,直接把文件放到本地wamp 根目錄,運行02.php 郵件即可發出(前提php文件可執行)-(不行的話 在根目錄建一個文件夾 重復操作一次)http://localhost/02.php。
以上就是php發送郵件的成功案例,希望對大家的學習有所幫助。