mail()函數的作用:連接到郵件服務器,利用smtp協議,與該服務器交互並投郵件。
注意:
1、mail函數不支持esmtp協議,---即,只能直投,不能登陸
2、由上條,我們只能直投至最終的收件服務器地址.而該地址,又是在PHP.ini中指定的,所以我們想用mail()函數往 aseoev@163.com發信的話,我們要---
1)查詢163郵件服務器的地址
2)把該地址寫到php.ini裡去
php實例代碼如下:
SMTP = 163mx02.mxmail.netease.com
sendmail_from = wusong@192.168.1.100
var_dump(mail('12345678@qq.com','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('never_kiss@163.com','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 = 'never_4ill@163.com';
$phpmailer->FromName = 'neverkill';
$phpmailer->Subject = 'Superstart Aseoe';
$phpmailer->Body = '幫客之家(http://www.bkjia.com 專注前端開發與編程設計.';
//設置收信人
$phpmailer->AddAddress('never_4ill@163.com','neverkill');
// 添加一個抄送
$phpmailer->AddCC('1234567','Aseoe');
// 發信
echo $phpmailer->send()?'ok':'fail';
補充一個使用上面例子的方法:
直接將phpmailer壓縮包解壓放到根目錄即可運行,直接把文件放到本地wamp 根目錄,運行02.php 郵件即可發出(前提php文件可執行)-(不行的話 在根目錄建一個文件夾 重復操作一次)http://localhost/02.php。
以上就是php發送郵件的成功案例,希望對大家的學習有所幫助。