您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何在PHP中利用Pear實現一個郵件發送功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
一、PEAR安裝
1、PEAR簡介
PEAR是PHP擴展與應用庫(the PHP Extension and Application Repository)的縮寫。它是一個PHP擴展及應用的一個代碼倉庫,簡單地說,PEAR之于PHP就像是CPAN(Comprehensive Perl Archive Network)之于Perl。
PEAR的基本目標是發展成為PHP擴展和庫代碼的知識庫,而這個項目最有雄心的目標則是試圖定義一種標準,這種標準將幫助開發者編寫可移植、可重用的代碼。
在WAMP集成環境中安裝PEAR
1)、首先下載一個go-pear.phar文件。
2)、進入到php的運行目錄安裝
我這里使用了一個wamp的集成開發環境,版本是wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b,我本地的安裝路徑是C:\wamp\bin\php\php5.4.3>
執行如下的命令:
php.exe -d phar.require_hash=0 go-pear.phar
到這一步可以修改PEAR安裝的$prefix路徑,我選擇了默認,一路回車進行安裝。
3)、修改include_path選項
最后PEAR默認擴展包安裝后,提示是否需要配置php.ini文件中的include_path選項指向pear的安裝目錄
當然需要配置,否則無法使用,Y并回車,安裝包會自動修改include_path選項。提示我們環境變量沒有設置,所以下面我們還需要設置一下系統的環境變量。
新建一個環境變量名,如下圖
然后在PATH變量中加入%php_home%就完成啦~。
2、PEAR常用命令
在命令行方式下,運用PEAR的相關命令可以安裝自己需要的PEAR安裝包。
pear help 列出pear的所有命令,類似于pear的命令幫助命令。
pear help <command> 列出某個pear命令的具體信息
pear help shortcuts 列出所有pear命令的簡寫
二、安裝Mail,Mail_Mine,Net_SMTP
第一步:在cmd中進入到PHP的運行目錄,也就是php.exe。
第二步:使用pear install Mail,pear install Mail_Mine,pear install Net_SMTP安裝好發郵件需要的類庫
第三步:使用pear list查看以上三個類庫是否安裝。
三、實例
<?php error_reporting(0); //PHP會出現不規范提示,故此設置 require_once "Mail.php"; //記得將Pear目錄加入環境,才能這樣引用,否則要引用絕對路徑 $from = "sender@outlook.com"; //發送方 $to = "receiver@qq.com"; //接收方 $subject = "Hi!"; //主題 $body = "Hi,\n\nHow are you?"; //內容 $host = "smtp.live.com"; //SMTP服務器 $port = "587"; //端口 // $port = "25"; //兩個端口都行 $username = "username@outlook.com";//用戶名 $password = "password";//密碼 $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); //郵件頭 $smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password)); //服務設置 //發送郵件 $mail = $smtp->send($to, $headers, $body); //錯誤處理 if (PEAR::isError($mail)) { echo("<p>". $mail->getMessage() ."</p>"); } else { echo("<p>Message successfully sent!</p>"); } ?>
四、php利用pear:Net_SMTP類發送郵件的方法
在使用以下源代碼前,請配置好pear的路徑,并下載net_smtp包。
在php.ini文件中根據你的操作系統選擇不同的設置方法:
; UNIX: "/path2:/path3"
include_path = ".:./php/pear"
;
; Windows: "\path2;\path3"
;include_path = ".;c:\php\pear"
代碼:
<?php require 'Net/SMTP.php'; $host = '126.com';//smtp服務器的ip或域名 $username= 'arcow';//登陸smtp服務器的用戶名 $password= 'secret';//登陸smtp服務器的密碼 $from = 'arcow@126.com'; //誰發的郵件 $rcpt = array('test@test.com', 'arcow@126.com');//可設多個接收者 $subj = "Subject: 你是誰\n";//主題 $body = "test it";//郵件內容 /* 建立一個類 */ if (! ($smtp = new Net_SMTP($host))) { die("無法初始化類Net_SMTP!\n"); } /* 開始連接SMTP服務器*/ if (PEAR::isError($e = $smtp->connect())) { die($e->getMessage() . "\n"); } /* smtp需要身份驗證 */ $smtp->auth($username,$password,"PLAIN"); /*設置發送者郵箱 */ if (PEAR::isError($smtp->mailFrom($from))) { die("無法設置發送者郵箱為 <$from>\n"); } /* 設置接收郵件者 */ foreach ($rcpt as $to) { if (PEAR::isError($res = $smtp->rcptTo($to))) { die("郵件無法投遞到 <$to>: " . $res->getMessage() . "\n"); } } /* 開始發送郵件內容 */ if (PEAR::isError($smtp->data($subj . "\r\n" . $body))) { die("Unable to send data\n"); } /* 斷開連接 */ $smtp->disconnect(); echo "發送成功!"; ?>
關于如何在PHP中利用Pear實現一個郵件發送功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。