PHP接收數(shù)據(jù)后發(fā)送郵件 php接收數(shù)據(jù)的方法

php如何發(fā)送郵件

你好,用這個(gè)郵件類,需要在調(diào)用時(shí),填寫一個(gè)smtp服務(wù)器和你的用戶名密碼。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),泰順企業(yè)網(wǎng)站建設(shè),泰順品牌網(wǎng)站建設(shè),網(wǎng)站定制,泰順網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,泰順網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

?php

set_time_limit(600);

/*

* 郵件發(fā)送類

*/

class smail {

//您的SMTP 服務(wù)器供應(yīng)商,可以是域名或IP地址

var $smtp = "";

//SMTP需要要身份驗(yàn)證設(shè)值為 1 不需要身份驗(yàn)證值為 0,現(xiàn)在大多數(shù)的SMTP服務(wù)商都要驗(yàn)證,如不清楚請(qǐng)與你的smtp 服務(wù)商聯(lián)系。

var $check = 1;

//您的email帳號(hào)名稱

var $username = "";

//您的email密碼

var $password = "";

//此email 必需是發(fā)信服務(wù)器上的email

var $s_from = "";

/*

* 功能:發(fā)信初始化設(shè)置

* $from 你的發(fā)信服務(wù)器上的郵箱

* $password 你的郵箱密碼

* $smtp 您的SMTP 服務(wù)器供應(yīng)商,可以是域名或IP地址

* $check SMTP需要要身份驗(yàn)證設(shè)值為 1 不需要身份驗(yàn)證值為 0,現(xiàn)在大多數(shù)的SMTP服務(wù)商都要驗(yàn)證

*/

function smail ( $from, $password, $smtp, $check = 1 ) {

if( preg_match("/^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]+[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{2,3}/", $from ) ) {

$this-username = substr( $from, 0, strpos( $from , "@" ) );

$this-password = $password;

$this-smtp = $smtp ? $smtp : $this-smtp;

$this-check = $check;

$this-s_from = $from;

}

}

/*

* 功能:發(fā)送郵件

* $to 目標(biāo)郵箱

* $from 來(lái)源郵箱

* $subject 郵件標(biāo)題

* $message 郵件內(nèi)容

*/

function send ( $to, $from, $subject, $message ) {

//連接服務(wù)器

$fp = fsockopen ( $this-smtp, 25, $errno, $errstr, 60);

if (!$fp ) return "聯(lián)接服務(wù)器失敗".__LINE__;

set_socket_blocking($fp, true );

$lastmessage=fgets($fp,512);

if ( substr($lastmessage,0,3) != 220 ) return "錯(cuò)誤信息1:$lastmessage".__LINE__;

//HELO

$yourname = "YOURNAME";

if($this-check == "1") $lastact="EHLO ".$yourname."\r\n";

else $lastact="HELO ".$yourname."\r\n";

fputs($fp, $lastact);

$lastmessage == fgets($fp,512);

if (substr($lastmessage,0,3) != 220 ) return "錯(cuò)誤信息2:$lastmessage".__LINE__;

while (true) {

$lastmessage = fgets($fp,512);

if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )

break;

}

//身份驗(yàn)證

if ($this-check=="1") {

//驗(yàn)證開始

$lastact="AUTH LOGIN"."\r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 334) return "錯(cuò)誤信息3:$lastmessage".__LINE__;

//用戶姓名

$lastact=base64_encode($this-username)."\r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 334) return "錯(cuò)誤信息4:$lastmessage".__LINE__;

//用戶密碼

$lastact=base64_encode($this-password)."\r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != "235") return "錯(cuò)誤信息5:$lastmessage".__LINE__;

}

//FROM:

$lastact="MAIL FROM: ". $this-s_from . "\r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 250) return "錯(cuò)誤信息6:$lastmessage".__LINE__;

//TO:

$lastact="RCPT TO: ". $to ." \r\n";

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 250) return "錯(cuò)誤信息7:$lastmessage".__LINE__;

//DATA

$lastact="DATA\r\n";

fputs($fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 354) return "錯(cuò)誤信息8:$lastmessage".__LINE__;

//處理Subject頭

$head="Subject: $subject\r\n";

$message = $head."\r\n".$message;

//處理From頭

$head="From: $from\r\n";

$message = $head.$message;

//處理To頭

$head="To: $to\r\n";

$message = $head.$message;

//加上結(jié)束串

$message .= "\r\n.\r\n";

//發(fā)送信息

fputs($fp, $message);

$lastact="QUIT\r\n";

fputs($fp,$lastace);

fclose($fp);

return 0;

}

}

// 發(fā)送示例

// 只需要把這部分改成你的信息就行

$sm = new smail( "用戶名", "密碼", "發(fā)件smtp服務(wù)器" );

$end = $sm-send( "收件人", "發(fā)件人(可以偽造哦)", "標(biāo)題", "內(nèi)容" );

if( $end ) echo $end;

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

?

PHP使用郵箱發(fā)送郵件(phpmailer/phpmailer)

本文以QQ郵箱為案例

1.配置QQ郵箱,獲取SMTP 密碼

3.開啟PHP模塊(php.ini)

PHPMailer 需要 PHP 的 sockets 擴(kuò)展支持,而登錄 QQ 郵箱 SMTP 服務(wù)器則必須通過(guò) SSL 加密,故 PHP 還得包含 openssl 的支持。

4.composer 安裝最新版發(fā)送郵件類庫(kù)

composer require phpmailer/phpmailer:6.1.5

TP5.1類庫(kù)封裝

php表單數(shù)據(jù)發(fā)送到指定郵件

首先,我們需要去Github(網(wǎng)頁(yè)鏈接)下載完整的SwiftMailer

這里主要使用到的是下載解壓后lib文件夾里的內(nèi)容,然后需要一些配置項(xiàng),為方便管理和修改,此處我們寫一個(gè)配置文件config.php,來(lái)進(jìn)行配置,此處以QQ郵箱為例,配置項(xiàng)如下:

然后自定義一個(gè)函數(shù)sendMail(函數(shù)里的C是thinkphp里獲取配置文件的方法,自己在不是tp里的話使用直接require就可以了)

然后在相關(guān)代碼里使用調(diào)用sendMail發(fā)送郵件,這里以ThinkPHP里的controller為例子,使用方法如下:

發(fā)送成功后顯示 ‘Done!’:

然后就可以去郵箱查看是否收取到郵件咯。

就是這么簡(jiǎn)單。

參考:網(wǎng)頁(yè)鏈接

php獲取信息怎么在使用php將獲取的信息以郵件的方式發(fā)送到指定郵箱

send_mail($_POST['test_email'],?"",?"測(cè)試配置是否正確",?"這是一封測(cè)試郵件,如果收到了說(shuō)明配置沒(méi)有問(wèn)題",?"",?$_POST);

關(guān)于發(fā)送郵件函數(shù)網(wǎng)上多得很找一個(gè)send_mail函數(shù)就行了

如何正確運(yùn)用PHP發(fā)送郵件函數(shù)

PHP發(fā)送郵件函數(shù)的應(yīng)用代碼示例:

#echo?send_mail($_POST["email"],$tosubject,$_POST["errortext"]);??

echo?send_mail('someone@126.com','only?a?test?mail?for?test?php?mail?function','一封垃圾郵件');??

echo?time();??

function?send_mail($to,?$subject?=?'No?subject',?$body)?{??

$loc_host?=?"mail.server";?//發(fā)信計(jì)算機(jī)名,可隨意??

$smtp_acc?=?"smp@163.com";?//Smtp認(rèn)證的用戶名??

$smtp_pass="pwdpwd";?//Smtp認(rèn)證的密碼,一般等同pop3密碼??

$smtp_host="smtp.163.com";?//SMTP服務(wù)器地址,類似?smtp.tom.com??

$from="smp@163.com";?//發(fā)信人Email地址,你的發(fā)信信箱地址??

$deliver=$smtp_acc;?//回復(fù)到指定郵箱??

$headers?=?"Content-Type:?text/plain;?charset="gb2312"rnContent-Transfer-Encoding:?base64";??

$lb="rn";?//linebreak???

$hdr?=?explode($lb,$headers);?//解析后的hdr??

if($body)?{$bdy?=?preg_replace("/^./","..",explode($lb,$body));}//解析后的Body??

$smtp?=?array(??

//1、EHLO,期待返回220或者250??

array("EHLO?".$loc_host.$lb,"220,250","HELO?error:?"),??

//2、發(fā)送Auth?Login,期待返回334??

array("AUTH?LOGIN".$lb,"334","AUTH?error:"),??

//3、發(fā)送經(jīng)過(guò)Base64編碼的用戶名,期待返回334??

array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION?error?:?"),??

//4、發(fā)送經(jīng)過(guò)Base64編碼的密碼,期待返回235??

array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION?error?:?"));??

//5、發(fā)送Mail?From,期待返回250??

$smtp[]?=?array("MAIL?FROM:?".$from."".$lb,"250","MAIL?FROM?error:?");??

//6、發(fā)送Rcpt?To。期待返回250??

$smtp[]?=?array("RCPT?TO:?".$to."".$lb,"250","RCPT?TO?error:?");??

//7、發(fā)送DATA,期待返回354??

$smtp[]?=?array("DATA".$lb,"354","DATA?error:?");??

//8.0、發(fā)送From??

$smtp[]?=?array("From:?".$deliver.$lb,"","");??

//8.2、發(fā)送To??

$smtp[]?=?array("To:?".$to.$lb,"","");??

//8.1、發(fā)送標(biāo)題??

$smtp[]?=?array("Subject:?".$subject.$lb,"","");??

//8.3、發(fā)送其他Header內(nèi)容??

foreach($hdr?as?$h)?{$smtp[]?=?array($h.$lb,"","");}??

//8.4、發(fā)送一個(gè)空行,結(jié)束Header發(fā)送??

$smtp[]?=?array($lb,"","");??

//8.5、發(fā)送信件主體??

if($bdy)?{foreach($bdy?as?$b)?{$smtp[]?=?array(base64_encode($b.$lb).$lb,"","");}}??

//9、發(fā)送“.”表示信件結(jié)束,期待返回250??

$smtp[]?=?array(".".$lb,"250","DATA(end)error:?");??

//10、發(fā)送Quit,退出,期待返回221??

$smtp[]?=?array("QUIT".$lb,"221","QUIT?error:?");??

//打開smtp服務(wù)器端口??

$fp?=?@fsockopen($smtp_host,?25);??

if?(!$fp)?echo?"bError:/b?Cannot?conect?to?".$smtp_host."br";??

while($result?=?@fgets($fp,?1024)){if(substr($result,3,1)?==?"?")?{?break;?}}??

$result_str="";??

//發(fā)送smtp數(shù)組中的命令/數(shù)據(jù)??

foreach($smtp?as?$req){??

//發(fā)送信息??

@fputs($fp,?$req[0]);??

//如果需要接收服務(wù)器返回信息,則??

if($req[1]){??

//接收信息??

while($result?=?@fgets($fp,?1024)){??

if(substr($result,3,1)?==?"?")?{?break;?}??

};??

if?(!strstr($req[1],substr($result,0,3))){??

$result_str.=$req[2].$result."br";??

}??

}??

}??

//關(guān)閉連接??

@fclose($fp);??

return?$result_str;??

}??

希望上面這段代碼示例能讓大家充分掌握PHP發(fā)送郵件函數(shù)的運(yùn)用。

網(wǎng)頁(yè)題目:PHP接收數(shù)據(jù)后發(fā)送郵件 php接收數(shù)據(jù)的方法
網(wǎng)頁(yè)網(wǎng)址:http://muchs.cn/article24/hjcsje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站品牌網(wǎng)站制作、面包屑導(dǎo)航定制開發(fā)、網(wǎng)站設(shè)計(jì)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管