亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 php教程 php手冊 在PHP中用Socket發(fā)送電子郵件(二)

在PHP中用Socket發(fā)送電子郵件(二)

Jun 21, 2016 am 09:14 AM
debug gt quot this

send_mail類的實現(xiàn)
  現(xiàn)在開始介紹我所編寫的發(fā)送郵件類。有了上面的預(yù)備知識了,下面就是實現(xiàn)了。

類的成員變量

var $lastmessage; //記錄最后返回的響應(yīng)信息
var $lastact; //最后的動作,字符串形式
var $welcome; //用在HELO后面,歡迎用戶
var $debug; //是否顯示調(diào)試信息
var $smtp; //smtp服務(wù)器
var $port; //smtp端口號
var $fp; //socket句柄

  其中,$lastmessage和$lastact用于記錄最后一次響應(yīng)信息及執(zhí)行的命令,當(dāng)出錯時,用戶可以使用它們。為了測試需要,我還定義了$debug變量,當(dāng)其值為true時,會在運行過程中顯示一些執(zhí)行信息,否則無任何輸出。$fp用于保存打開后的socket句柄。

類的構(gòu)造


--------------------------------------------------------------------------------
function send_mail($smtp, $welcome="", $debug=false)
{
if(empty($smtp)) die("SMTP cannt be NULL!");
$this->smtp=$smtp;
if(empty($welcome))
{
$this->welcome=gethostbyaddr("localhost");
}
else
$this->welcome=$welcome;
$this->debug=$debug;
$this->lastmessage="";
$this->lastact="";
$this->port="25";
}
--------------------------------------------------------------------------------
  這個構(gòu)造函數(shù)主要完成一些初始值的判定及設(shè)置。$welcome用于HELO指令中,告訴服務(wù)器用戶的名字。HELO指令要求為機器名,但是不用也可以。如果用戶沒有給出$welcome,則自動查找本地的機器名。

顯示調(diào)試信息

--------------------------------------------------------------------------------
1 function show_debug($message, $inout)
2 {
3 if ($this->debug)
4 {
5 if($inout=="in") //響應(yīng)信息
6 {
7 $m='8 }
9 else
10 $m='>> ';
11 if(!ereg("\n$", $message))
12 $message .= "
";
13 $message=nl2br($message);
14 echo "${m}${message}";
15 }
16 }
--------------------------------------------------------------------------------
  這個函數(shù)用來顯示調(diào)試信息??梢栽?inout中指定是上傳的指令還是返回的響應(yīng),如果為上傳指令,則使用"out";如果為返回的響應(yīng)則使用"in"。

第3行,判斷是否要輸出調(diào)試信息。
第5行,判斷是否為響應(yīng)信息,如果是,則在第7行將信息的前面加上"> "來區(qū)別上傳指令。
第11-12行,判斷信息串最后是否為換行符,如不是則加上HTML換行標(biāo)記。第13行將所以的換行符轉(zhuǎn)成HTML的換行標(biāo)記。
第14行,輸出整條信息,同時將信息顏色置為灰色以示區(qū)別。執(zhí)行一個命令

--------------------------------------------------------------------------------
1 function do_command($command, $code)
2 {
3 $this->lastact=$command;
4 $this->show_debug($this->lastact, "out");
5 fputs ( $this->fp, $this->lastact );
6 $this->lastmessage = fgets ( $this->fp, 512 );
7 $this->show_debug($this->lastmessage, "in");
8 if(!ereg("^$code", $this->lastmessage))
9 {
10 return false;
11 }
12 else
13 return true;
14 }
--------------------------------------------------------------------------------
  在編寫socket處理部分發(fā)現(xiàn),一些命令的處理很相似,如HELO,MAIL FROM,RCPT TO,QUIT,DATA命令,都要求根據(jù)是否顯示調(diào)試信息將相關(guān)內(nèi)容顯示出來,同時對于返回的響應(yīng)碼,如果是期望的,則應(yīng)繼續(xù)處理,如果不是期望的,則應(yīng)中斷出理。所以為了清晰與簡化,專門對這些命令的處理編寫了一個通用處理函數(shù)。函數(shù)的參數(shù)中$code為期望的響應(yīng)碼,如果響應(yīng)碼與之相同則表示處理成功,否則出錯。

第3行,記錄最后執(zhí)行命令。
第4行,將上傳命令顯示出來。
第5行,則使用fputs真正向服務(wù)器傳換指令。
第6行,從服務(wù)器接收響應(yīng)信息將放在最后響應(yīng)消息變量中。
第7行,將響應(yīng)信息顯示出來。
第8行,判斷響應(yīng)信息是否期待的,如果是則第13行返回成功(true),否則在第10行返回失敗(false)。

  這樣,這個函數(shù)一方面完成指令及信息的發(fā)送顯示功能,別一方面對返回的響應(yīng)判斷是否成功。




本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區(qū)別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質(zhì)是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質(zhì)是藍(lán)寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結(jié)果會更加的精準(zhǔn)。 GT3pro:多了ECG心電圖和血管及安

修復(fù):截圖工具在 Windows 11 中不起作用 修復(fù):截圖工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應(yīng)用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅(qū)動程式:不相容的驅(qū)動程式可能會幹?jǐn)_截圖工具。來自其他應(yīng)用程式的干擾:其他正在運行的應(yīng)用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導(dǎo)致此issu簡單的解決方案這些適合大多數(shù)用戶,不需要任何特殊的技術(shù)知識。 1.更新視窗與Microsoft應(yīng)用程式商店應(yīng)用程

SpringBoot專案設(shè)定斷點debug調(diào)試無效怎麼解決 SpringBoot專案設(shè)定斷點debug調(diào)試無效怎麼解決 May 11, 2023 am 10:49 AM

剛接觸springboot項目,(1)發(fā)現(xiàn)斷點debug調(diào)試無效,很鬱悶,網(wǎng)路搜尋解決方法??吹降亩际且恍┖苎}雜的方案,說是遠(yuǎn)端調(diào)試,還要另外開埠號。這和傳統(tǒng)的項目不一樣,因此覺得沒必要。所以經(jīng)過摸索,發(fā)現(xiàn)有一種更簡單的方式,步驟如下:在pom檔案的plugin部分加上一段設(shè)定:false這樣就ok了;(2)關(guān)於SpringBoot專案中報錯說web.xml檔案ismissing的問題,因為傳統(tǒng)的web專案都是要web.xml檔案的,但是SpringBoot專案是可以不需要web.xml文件

如何修復(fù)無法連線到iPhone上的App Store錯誤 如何修復(fù)無法連線到iPhone上的App Store錯誤 Jul 29, 2023 am 08:22 AM

第1部分:初始故障排除步驟檢查蘋果的系統(tǒng)狀態(tài):在深入研究複雜的解決方案之前,讓我們先從基礎(chǔ)知識開始。問題可能不在於您的設(shè)備;蘋果的伺服器可能會關(guān)閉。造訪Apple的系統(tǒng)狀態(tài)頁面,查看AppStore是否正常運作。如果有問題,您所能做的就是等待Apple修復(fù)它。檢查您的網(wǎng)路連接:確保您擁有穩(wěn)定的網(wǎng)路連接,因為「無法連接到AppStore」問題有時可歸因於連接不良。嘗試在Wi-Fi和行動數(shù)據(jù)之間切換或重置網(wǎng)路設(shè)定(「常規(guī)」>「重置」>「重置網(wǎng)路設(shè)定」>設(shè)定)。更新您的iOS版本:

php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出,該如何解決 php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出,該如何解決 Jun 13, 2016 am 10:23 AM

php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出而不是在空白頁彈出?想實現(xiàn)這樣的效果:而不是空白頁彈出:------解決方案--------------------如果你的驗證用PHP在后端,那么就用Ajax;僅供參考:HTML code

聊聊Vue2為什麼能透過this存取各種選項中屬性 聊聊Vue2為什麼能透過this存取各種選項中屬性 Dec 08, 2022 pm 08:22 PM

這篇文章帶大家解讀vue原始碼,來介紹一下Vue2中為什麼可以使用 this 存取各種選項中的屬性,希望對大家有幫助!

如何使用 iPadOS 17.4 優(yōu)化 iPad 電池壽命 如何使用 iPadOS 17.4 優(yōu)化 iPad 電池壽命 Mar 21, 2024 pm 10:31 PM

如何使用iPadOS17.4優(yōu)化iPad電池壽命延長電池續(xù)航時間是移動設(shè)備體驗的關(guān)鍵,iPad是一個很好的例子。如果您覺得iPad電池消耗速度過快,不用擔(dān)心,在iPadOS17.4中有許多技巧和調(diào)整可以顯著延長設(shè)備的運行時間。本深入指南的目標(biāo)不僅僅是提供信息,而是改變您使用iPad的方式,增強您的整體電池管理,并確保您可以在無需充電的情況下更長時間地依賴您的設(shè)備。通過采用此處概述的做法,您朝著更高效、更謹(jǐn)慎地使用技術(shù)邁出了一步,這些技術(shù)是根據(jù)您的個人需求和使用模式量身定制的。識別主要的能量消耗者

watch4pro好還是gt好 watch4pro好還是gt好 Sep 26, 2023 pm 02:45 PM

watch4pro和gt各自具有不使用的特點和適用場景,如果注重功能的全面性、高性能和時尚外觀,同時願意承擔(dān)較高的價格,那麼Watch 4 Pro可能更適合。如果對功能要求不高,更注重電池續(xù)航力和價格的合理性,那麼GT系列可能更適合。最終的選擇應(yīng)根據(jù)個人需求、預(yù)算和喜好來決定,建議在購買前仔細(xì)考慮自己的需求,並參考各種產(chǎn)品的評測和比較,以做出更明智的選擇。

See all articles