溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

我的php學(xué)習(xí)筆記(42) PHP通過(guò)mail()或Socket發(fā)從郵件

發(fā)布時(shí)間:2020-07-22 21:54:54 來(lái)源:網(wǎng)絡(luò) 閱讀:422 作者:aiyunyisheng 欄目:web開(kāi)發(fā)

PHP通過(guò)mail()或Socket發(fā)從郵件
php發(fā)送郵件是直接通過(guò)mail函數(shù)實(shí)現(xiàn)的,但是很多人在使用的時(shí)候發(fā)

送不成功,原因是因?yàn)橄鄳?yīng)的文件沒(méi)有配置完整,而且配置的過(guò)程比較

麻煩,兼容性很差。要配置的文件有:php.ini文件以及類(lèi)似sendmail這

樣的組件的支持。

另外一種發(fā)送郵件的方式是通過(guò)socket通訊,使用SMTP傳輸。通過(guò)使

用socket的方式發(fā)送郵件的兼容性比較強(qiáng),但是代碼量就會(huì)變得多了

一點(diǎn)。
用socket方式發(fā)送郵件的過(guò)程:
socket連接-->SMTP通訊-->獲取通訊信息-->發(fā)送

mail函數(shù)的使用
mail(to,subject,message,headers,parameters)
如果郵件的投遞被成功地接收,則返回true,否則返回false
各參數(shù)的含義:
to 必需。規(guī)定郵件的接收者。
subject 必需。規(guī)定郵件的主題。該參數(shù)不能包含任何換行字符。
message 必需。規(guī)定要發(fā)送的消息。
headers 可選。規(guī)定額外的報(bào)頭,比如 From, Cc 以及 Bcc。
parameters 可選。規(guī)定 sendmail 程序配置的額外參數(shù)。
注:如果要使用mail函數(shù),必須在php.ini文件配置成功和獲得

Sendmail的支持

socket方式發(fā)送原理
使用fsockopen函數(shù)打開(kāi)一個(gè)Internet連接
fsockopen(string hostname, int port, int [errno], string [errstr], int

[timeout]);
使用的是SMTP協(xié)議,所以端口號(hào)是25,連接成功后,會(huì)返回一個(gè)

socket句柄,使用它就可以像使用文件句柄一樣。
可以使用像其他文件句柄一樣,會(huì)返回一些值,下面是一些常見(jiàn)的返回

值:
220 服務(wù)就緒(在socket連接成功時(shí),會(huì)返回此信息)
221 正在處理
250 請(qǐng)求郵件動(dòng)作正確,
354 開(kāi)始發(fā)送數(shù)據(jù),結(jié)束以 .
500 語(yǔ)法錯(cuò)誤,命令不能識(shí)別
550 命令不能執(zhí)行,郵箱無(wú)效
552 中斷處理:用戶(hù)超出文件空間

例子:(socket)

<?php  
    require_once('pw.php');  
    require_once('email.class.php');  
      
    $smtpserver = "smtp.qq.com";  
    $smtpserverport = 25;  
    $smtpemail = "woai12346@qq.com";  
    $smtpemailto = "441508867@qq.com";  
      
    $smtpuser = "hhq";  
    $smtppass=$pw;  
    $mailsubject = "test";  
    $mailbody = "It is a test.";  
    $mailtype = "txt";  
    $smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);  
    $smtp->debug = true;  
    $smtp->sendmail($smtpemailto,$smtpemail,$mailsubject,$mailbody,$mailtype);
?>


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI