用Socket發送電子郵件在作者所申請的幾個PHP 主頁空間中,能夠提供mail功能的實在不多,總是調用完mail()函數之后就毫
無下文了。但是電子郵件在網上生活中的作用越來越大。想一想網蟲 " /> 中文文字幕文字幕亚洲色,国产精品一区二区20P,好紧小嫩嫩水的10p

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

用Socket發送電子郵件


用Socket發送電子郵件在作者所申請的幾個php 主頁空間中,能夠提供mail功能的實在不多,總是調用完mail()函數之后就毫
無下文了。但是電子郵件在網上生活中的作用越來越大。想一想網蟲上網不收郵件能叫真正的網蟲嗎?郵件
的作用我不想再說了,但是如果主頁空間不支持mail()發送那么怎么辦呢?我也想過通過socket來實現郵件
發送,但無奈對用php 進行socket編程不熟悉,再加上發送郵件要用到SMTP協議,又要讀不少的英文了,所
以一直也沒有去研究過。終于有一天我發現了一篇文章,關于用socket編程發送郵件。我如獲至寶般將其拷
貝下來,并且將其改造成了一個php 可用的類,供大家使用。原來的文章只是一個簡單的例子,而且還有一
些錯誤,在我經過多次的實驗、改造終于將其改成了一個直接使用socket,向指定的郵箱發送郵件的類,如
果大家和前面關于發送MIME的文章結合起來,就可以實現在不支持mail()函數的網站上發送郵件了。因為發
送郵件的過程需要時間,可能與mail()的處理機制還不完全一樣,所以速度要慢一些,但是可以解決需要發
送郵件功能的燃眉之急,同時你也可以學習用php 進行socket編程。下面就將這個類的實現原理介紹給大家,
同時向大家講解一些關于SMTP的基本知識。

Socket編程介紹
向大家申明,本人不是一個TCP/IP編程專家,故在此只是講出了我的一點理解和體會。

使用fsockopen函數打開一個InterNET連接,函數語法格式:

int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

參數的意思我想不用講了,這里由于要使用SMTP協議,所以端口號為25。在打開連接成功后,會返回一
個socket句柄,使用它就可以象使用文件句柄一樣的。可使用的操作有fputs(),fgets(),feof(),fclose()
等。

很簡單地介紹就到這里吧。

SMTP的基礎
基于TCP/IP的因特網協議一般的命令格式都是通過請求/ 應答方式實現的,采用的都是文本信息,所以
處理起來要容易一些。SMTP是簡單郵件傳輸協議的簡稱,它可以實現客戶端向服務器發送郵件的功能。所以
下面所講的命令是指客戶端向服務器發出請求指令,而響應則是指服務器返回給客戶端的信息。

SMTP分為命令頭和信息體兩部分。命令頭主要完成客戶端與服務器的連接,驗證等。整個過程由多條命
令組成。每個命令發到服務器后,由服務器給出響應信息,一般為3 位數字的響應碼和響應文本。不同的服
務器返回的響應碼是遵守協議的,但是響應正文本則不必。每個命令及響應的最后都有一個回車符,這樣使
用fputs()和fgets()就可以進行命令與響應的處理了。SMTP的命令及響應信息都是單行的。信息體則是郵件
的正文部分,最后的結束行應以單獨的"."作為結束行。

客戶端一些常用的SMTP指令為:

HELO hostname: 與服務器打招呼并告知客戶端使用的機器名字,可以隨便填寫
MAIL FROM: sender_id : 告訴服務器發信人的地址
RCPT TO: receiver_id : 告訴服務器收信人的地址
DATA : 下面開始傳輸信件內容,且最后要以只含有.的特殊行結束
RESET: 取消剛才的指令,從新開始
VERIFY userid: 校驗帳號是否存在(此指令為可選指令,服務器可能不支持)
QUIT : 退出連接,結束
服務器返回的響應信息為(格式為:響應碼+空格+解釋):

220 服務就緒(在socket連接成功時,會返回此信息)
221 正在處理
250 請求郵件動作正確,完成(HELO,MAIL FROM,RCPT TO,QUIT指令執行成功會返回此信息)
354 開始發送數據,結束以 .(DATA指令執行成功會返回此信息,客戶端應發送信息)
500 語法錯誤,命令不能識別
550 命令不能執行,郵箱無效
552 中斷處理:用戶超出文件空間
下面給出一個簡單的命令頭(這是在打開socket之后做的),是我向stmp.263.NET發郵件的測試結果:

HELO limodou
250 smtp.263.NET
MAIL FROM: chatme@263.NET
250 Ok
RCPT TO: chatme@263.NET
250 Ok
DATA
354 End data with .
To: chatme@263.NET
From: chatme@263.NET
Subject: test
From: chatme@263.NET
test
.
QUIT
250 Ok: queued as C46411C5097E0

這就是一些SMTP的簡單知識。相關內容可以查閱RFC。

RFC 821定義了收/發電子郵件的相關指令。
RFC 822則制定了郵件 主站蜘蛛池模板: 国产成人a视频在线观看 | 恋夜影院支持安卓视频美女 | 精子射到丝袜上图 | 欧美亚洲国内日韩自拍视频 | 国产成人在线观看免费网站 | 日日夜夜狠狠干 | 欧美日韩另类在线专区 | 午夜成a人片在线观看 | 6080YYY午夜理论片在线观看 | 99热这里只有精品 | AV午夜午夜快憣免费观看 | 我的奶头被客人吸的又肿又红 | 国产精品色午夜视频免费看 | 精品一区二区三区色花堂 | 欧美午夜精品一区区电影 | 野花日本免费完整版高清版动漫 | 亚洲精品久久久992KVTV | 中文字幕永久在线 | 中文字幕亚洲综合小综合在线 | 又黄又爽又无遮挡在线观看免费 | 欧美成人猛片aaaaaaa | 良家人妻无码专区九色颜射 | 国产精品成人免费视频99 | 亚洲色爽视频在线观看 | 夜蒲团之5阳性之教 | 国产亚洲tv在线观看 | s8sp视频高清在线播放 | 精品亚洲国产熟女福利自在线 | 国产精品高清免费网站 | 解开美女胸衣2破解版 | 免费无码又爽又黄又刺激网站 | 美妇教师双飞后菊 | 99热这里只就有精品22 | 99热都是精品 | 亚洲综合久久一本伊伊区 | 日本美女色| 亚洲伊人久久一次 | 妖精视频免费高清观看 | 李丽莎与土豪50分钟在线观看 | 精品一区二区三区高清免费观看 | 亚洲午夜精品A片久久WWW软件 |