php使用pear_smtp發(fā)送郵件
來(lái)源:易賢網(wǎng) 閱讀:911 次 日期:2016-08-26 15:24:06
溫馨提示:易賢網(wǎng)小編為您整理了“php使用pear_smtp發(fā)送郵件”,方便廣大網(wǎng)友查閱!

PHP自帶的mail函數(shù)比較蛋疼,在win下配置了sendmail還是無(wú)法發(fā)送郵件。而使用第三方的pear/mail可以直接通過(guò)smtp連接郵件發(fā)送服務(wù)器。如(smtp.163.com)。從而沒(méi)有必要在本機(jī)上安裝sendmail等類似軟件。

確保PEAR Mail包已經(jīng)安裝。

<?php 

 require_once "vendor/autoload.php"; 

 $from = "test<test@163.com>"; 

 $to = "test <test@outlook.com>"; 

 $subject = "Hi!"; 

 $body = "Hi,\n\nHow are you?"; 

 $host = "smtp.163.com"; 

$port = "25"; 

 $username = "test@163.com"; 

 $password = "test123"; 

 $headers = array ('From' => $from, 

  'To' => $to, 

  'Subject' => $subject); 

 $smtp = Mail::factory('smtp', 

  array ('host' => $host, 

   'port' => $port, 

   'auth' => true, 

  // 'debug'=>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>"); 

 } 

 ?>

這是非加密方式。

PHPer 多數(shù)使用 mail 函數(shù)來(lái)發(fā)送郵件,但我們可以使用其他的 SMTP 服務(wù)器來(lái)發(fā)送,這里推薦使用 PEAR's mail package 來(lái)發(fā)送郵件。

$subject = "This mail is sent from SMTP.";

$mail_body = "This is the body of the mail which is sent using SMTP.";

$from = "From: From Name <fromaddress@xpertdeveloper.com>"; 

$to = "To: To Name <toaddress@xpertdeveloper.com>"; 

$receiver = "toaddress@xpertdeveloper.com"; 

// Setting up the headers

$headers["From"] = $from; 

$headers["To"] = $to; 

$headers["Subject"] = $subject; 

$headers["Reply-To"] = "reply@address.com"; 

$headers["Content-Type"] = "text/plain; charset=ISO-2022-JP"; 

$headers["Return-path"] = "returnpath@address.com"; 

// Setting up the SMTP setting

$smtp_info["host"] = "smtp.server.com"; 

$smtp_info["port"] = "25"; 

$smtp_info["auth"] = true; 

$smtp_info["username"] = "smtp_user"; 

$smtp_info["password"] = "smtp_password"; 

// Creating the PEAR mail object :

$mail_obj =& Mail::factory("smtp", $smtp_info); 

// Sending the mail now

$mail_sent = $mail_obj->send($receiver, $headers, $mail_body); 

// If any error the see for that here:

if (PEAR::isError($mail_sent)) { print($mail_sent->getMessage());}

第三個(gè)案例:

在使用以下源代碼前,請(qǐng)配置好pear的路徑,下載net_smtp包

在php.ini文件中根據(jù)你的操作系統(tǒng)選擇不同的設(shè)置方法

; UNIX: "/path1:/path2"

include_path = ".:./php/pear"

;

; Windows: "\path1;\path2"

;include_path = ".;c:\php\pear"

require 'Net/SMTP.php';

$host = '126.com';//smtp服務(wù)器的ip或域名

$username= 'arcow';//登陸smtp服務(wù)器的用戶名

$password= 'secret';//登陸smtp服務(wù)器的密碼

$from = 'arcow@126.com';  //誰(shuí)發(fā)的郵件

$rcpt = array('test@test.com', 'arcow@126.com');//可設(shè)多個(gè)接收者

$subj = "Subject: 你是誰(shuí)\n";//主題

$body = "test it";//郵件內(nèi)容

/* 建立一個(gè)類 */

if (! ($smtp = new Net_SMTP($host))) {

  die("無(wú)法初始化類Net_SMTP!\n");

}

/* 開(kāi)始連接SMTP服務(wù)器*/

if (PEAR::isError($e = $smtp->connect())) {

  die($e->getMessage() . "\n");

}

/* smtp需要身份驗(yàn)證 */

$smtp->auth($username,$password,"PLAIN");

/*設(shè)置發(fā)送者郵箱 */

if (PEAR::isError($smtp->mailFrom($from))) {

  die("無(wú)法設(shè)置發(fā)送者郵箱為 <$from>\n");

}

/* 設(shè)置接收郵件者 */

foreach ($rcpt as $to) {

  if (PEAR::isError($res = $smtp->rcptTo($to))) {

    die("郵件無(wú)法投遞到 <$to>: " . $res->getMessage() . "\n");

  }

}

/* 開(kāi)始發(fā)送郵件內(nèi)容 */

if (PEAR::isError($smtp->data($subj . "\r\n" . $body))) {

  die("Unable to send data\n");

}

/* 斷開(kāi)連接 */

$smtp->disconnect();

echo "發(fā)送成功!";

?>

以上就是本文的全部?jī)?nèi)容,php利用pear_smtp發(fā)送郵件的三個(gè)案例,希望對(duì)大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:php使用pear_smtp發(fā)送郵件
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)