欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php郵件發(fā)送的兩種方式

 更新時間:2020年04月28日 10:25:30   投稿:lijiao  
本文就是根據(jù)php實現(xiàn)郵件發(fā)送的思路,整理下來的一篇文章,在遇到不同問題時給出的不同解決方法,感興趣的小伙伴們可以參考一下

這篇文章研究的主要內(nèi)容就是使用PHP來發(fā)送電子郵件,總結(jié)為以下兩種方法:

一、使用PHP內(nèi)置的mail()函數(shù)

<?php 
$to = "test@163.com"; //收件人 
$subject = "Test"; //主題 
$message = "This is a test mail!"; //正文 
mail($to,$subject,$message); 

結(jié)果就直接報錯,如下:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() inD:/www/Zend/email/email.php on line 10

分析原因:本地需要有SMTP服務(wù)器,又改了下代碼:

<?php 
$to = "test@163.com";//收件人 
$subject = "Test";//郵件主題 
$message = "This is a test mail!";//郵件正文 
ini_set('SMTP','smtp.163.com');//發(fā)件SMTP服務(wù)器 
ini_set('smtp_port',25);//發(fā)件SMTP服務(wù)器端口 
ini_set('sendmail_from',"admin@163.com");//發(fā)件人郵箱 
mail($to,$subject,$message); 

結(jié)果還是錯誤:

Warning: mail() [function.mail]: SMTP server response: 553 authentication is required,smtp2,DNGowKD7v5BTDo9NnplVBA--.1171S2 1301220947 inD:/www/Zend/email/email.php on line 9

分析原因:需要驗證信息,怎么寫驗證信息呢?在哪里配置呢?帶著這些疑問參考一些技術(shù)文章后得出結(jié)論,使用mail()函數(shù)發(fā)送郵件就必須要有一臺無需SMTP驗證就可以發(fā)信的郵件服務(wù)器。但現(xiàn)在的SMTP郵件服務(wù)器基本上都是需要驗證的,所以要想使用它發(fā)郵件就只能自己在本地搭一個不需要驗證的SMTP服務(wù)器。搭建方法:用windows自帶的IIS就可以,或者從網(wǎng)上下載其他的SMTP服務(wù)器軟件。

結(jié)論:使用mail()函數(shù)發(fā)送郵件,就必須要有一臺不需要驗證的SMTP服務(wù)器。這樣的話配置工作會多一點,但是使用的時候就比較省事了,幾行代碼就可以。

二、使用封裝SMTP協(xié)議的郵件類

這種方法就比較常見了,尤其對于廣大自己沒有服務(wù)器,從網(wǎng)上購買虛擬主機的同學,第一種方法不現(xiàn)實,所以還是自己使用SMTP協(xié)議來發(fā)送郵件吧。

不過要完成這項工作的話,就需要你對SMTP協(xié)議有一定的了解,喜歡事必躬親的同學可以自己動手寫一個,喜歡拿來主義的同學就可以從網(wǎng)上下載了,有很多。

不過我比較推薦使用PEAR擴展中的Mail類,功能強大:可以支持純文本、HTML格式的郵件;各字段都可設(shè)置編碼,正確配置不會出現(xiàn)中文亂碼情況;可以支持附件等等。

在服務(wù)器可以使用pear install Mail 命令快速安裝,沒有足夠服務(wù)器權(quán)限的同學也可以直接下載類的PHP源碼包含進來就可以了。

注:Mail類依賴  Net/SMTP.php  和 Mail/mime.php ,要一塊下載,使用時一塊包含進來。

下面我舉例說明一下在Mail類發(fā)送郵件的方法吧,網(wǎng)上其他SMTP郵件類使用方法一塊也類似,可以參考:

<?php 
 
// Pear Mail 擴展 
require_once('Mail.php'); 
require_once('Mail/mime.php'); 
require_once('Net/SMTP.php'); 
 
$smtpinfo = array(); 
$smtpinfo["host"] = "smtp.163.com";//SMTP服務(wù)器 
$smtpinfo["port"] = "25"; //SMTP服務(wù)器端口 
$smtpinfo["username"] = "username@163.com"; //發(fā)件人郵箱 
$smtpinfo["password"] = "password";//發(fā)件人郵箱密碼 
$smtpinfo["timeout"] = 10;//網(wǎng)絡(luò)超時時間,秒 
$smtpinfo["auth"] = true;//登錄驗證 
//$smtpinfo["debug"] = true;//調(diào)試模式 
 
// 收件人列表 
$mailAddr = array('receiver@163.com'); 
 
// 發(fā)件人顯示信息 
$from = "Name <username@163.com>"; 
 
// 收件人顯示信息 
$to = implode(',',$mailAddr); 
 
// 郵件標題 
$subject = "這是一封測試郵件"; 
 
// 郵件正文 
$content = "<h3>隨便寫點什么</h3>"; 
 
// 郵件正文類型,格式和編碼 
$contentType = "text/html; charset=utf-8"; 
 
//換行符號 Linux: \n Windows: \r\n 
$crlf = "\n"; 
$mime = new Mail_mime($crlf); 
$mime->setHTMLBody($content); 
 
$param['text_charset'] = 'utf-8'; 
$param['html_charset'] = 'utf-8'; 
$param['head_charset'] = 'utf-8'; 
$body = $mime->get($param); 
 
$headers = array(); 
$headers["From"] = $from; 
$headers["To"] = $to; 
$headers["Subject"] = $subject; 
$headers["Content-Type"] = $contentType; 
$headers = $mime->headers($headers); 
 
$smtp =& Mail::factory("smtp", $smtpinfo); 
 
 
$mail = $smtp->send($mailAddr, $headers, $body); 
$smtp->disconnect(); 
 
if (PEAR::isError($mail)) { 
 //發(fā)送失敗 
 echo 'Email sending failed: ' . $mail->getMessage()."\n"; 
} 
else{ 
 //發(fā)送成功 
 echo "success!\n"; 
} 

如果從網(wǎng)上找的SMTP類都是高度封裝的,所以使用起來比上面會更簡單,但使用方法都是比較相似的。

結(jié)論:這種方式發(fā)送郵件無需裝任何軟件,只需要包含進來一個PHP類,然后多寫幾行配置代碼,就可以了。并且網(wǎng)上有很多示例的代碼,很多時候只要復(fù)制過來然后修改個別的幾個參數(shù)就可以用了,所以會很方便,推薦使用此方法。

以上就是使用PHP發(fā)送郵件的兩種方法,有自己的思考過程,希望對大家的學習有所幫助。

相關(guān)文章

  • php下網(wǎng)站防IP攻擊代碼,超級實用

    php下網(wǎng)站防IP攻擊代碼,超級實用

    現(xiàn)在做外國網(wǎng)絡(luò),訪問量越來越高了,最近有很多不良IP不停的進行攻擊,由于不是自己的主機,所以,只能通過代碼去阻止它們。
    2010-10-10
  • PHP面向?qū)ο笞詣蛹虞d機制原理與用法分析

    PHP面向?qū)ο笞詣蛹虞d機制原理與用法分析

    這篇文章主要介紹了PHP面向?qū)ο笞詣蛹虞d機制原理與用法,結(jié)合實例形式分析了php面向?qū)ο笞詣蛹虞d機制的原理、相關(guān)函數(shù)及注意事項,需要的朋友可以參考下
    2016-10-10
  • PHP源碼之 ext/mysql擴展部分

    PHP源碼之 ext/mysql擴展部分

    PHP擴展主要分成3種 外部模塊、內(nèi)置、zend擴展。
    2009-07-07
  • 如何用Laravel包含你自己的幫助函數(shù)

    如何用Laravel包含你自己的幫助函數(shù)

    你可能想創(chuàng)建一個在應(yīng)用的任何地方都可以訪問的函數(shù),這個篇文章將帶你解決此問題,感興趣的同學,可以參考下。
    2021-05-05
  • php實現(xiàn)用手機關(guān)閉計算機(電腦)的方法

    php實現(xiàn)用手機關(guān)閉計算機(電腦)的方法

    這篇文章主要介紹了php實現(xiàn)用手機關(guān)閉計算機(電腦)的方法,涉及php使用system方法調(diào)用系統(tǒng)命令的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • PHP is_numeric()函數(shù)用法詳解

    PHP is_numeric()函數(shù)用法詳解

    is_numeric()函數(shù)是PHP中的內(nèi)置函數(shù),用于檢查傳入函數(shù)中作為參數(shù)的變量是數(shù)字還是數(shù)字字符串,該函數(shù)返回一個布爾值,本文就給大家講講PHP is_numeric()函數(shù)使用方法,需要的朋友可以參考下
    2023-07-07
  • 分享一則PHP定義函數(shù)代碼

    分享一則PHP定義函數(shù)代碼

    這篇文章主要介紹了分享一則PHP定義函數(shù)代碼,主要是讓大家熟悉下php的語法格式以及php中插入HTML代碼的方式,希望能夠給到大家一些幫助。
    2015-02-02
  • php 定義404頁面的實現(xiàn)代碼

    php 定義404頁面的實現(xiàn)代碼

    今天需要用php輸出一個404錯誤頁面,然后加載404頁面輸出,各個方便給用戶與搜索引擎好的用戶體驗
    2012-11-11
  • PHP實現(xiàn)讀取文件夾及批量重命名文件操作示例

    PHP實現(xiàn)讀取文件夾及批量重命名文件操作示例

    這篇文章主要介紹了PHP實現(xiàn)讀取文件夾及批量重命名文件操作,涉及php目錄讀取、遍歷、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • PHP實現(xiàn)隨機發(fā)放撲克牌

    PHP實現(xiàn)隨機發(fā)放撲克牌

    這篇文章主要為大家詳細介紹了PHP實現(xiàn)隨機發(fā)放撲克牌,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論