當前位置:首頁 » 編程語言 » php郵件類

php郵件類

發布時間: 2023-05-22 10:47:24

『壹』 php如何發送郵件

你好,用這個郵件類,需要在調用時,填寫一個smtp伺服器和你的用戶名密碼。

<?php
set_time_limit(600);
/*
* 郵件發送類
*/
class smail {
//您的SMTP 伺服器供應商,可以是域名或IP地址
var $smtp = "";
//SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證,如不清楚請與你的smtp 服務商聯系。
var $check = 1;
//您的email帳號名稱
var $username = "";
//您的email密碼
var $password = "";
//此email 必需是發信伺服器上的email
var $s_from = "";
/*
* 功能:發信初始化設置
* $from 你的發信伺服器上的郵箱
* $password 你的郵箱密碼
* $smtp 您的SMTP 伺服器供應商,可以是域名或IP地址
* $check SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證
*/
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;
}
}
/*
* 功能:發送郵件
* $to 目標郵箱
* $from 來源郵箱
* $subject 郵件標題
* $message 郵件內容
*/
function send ( $to, $from, $subject, $message ) {
//連接伺服器
$fp = fsockopen ( $this->smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "聯接伺服器失敗".__LINE__;
set_socket_blocking($fp, true );
$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "錯誤信息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 "錯誤信息2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}
//身份驗證
if ($this->check=="1") {
//驗證開始
$lastact="AUTH LOGIN"."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息3:$lastmessage".__LINE__;
//用戶姓名
$lastact=base64_encode($this->username)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息4:$lastmessage".__LINE__;
//用戶密碼
$lastact=base64_encode($this->password)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != "235") return "錯誤信息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 "錯誤信息6:$lastmessage".__LINE__;
//TO:
$lastact="RCPT TO: <". $to ."> \r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息7:$lastmessage".__LINE__;
//DATA
$lastact="DATA\r\n";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "錯誤信息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;

//加上結束串
$message .= "\r\n.\r\n";
//發送信息
fputs($fp, $message);
$lastact="QUIT\r\n";
fputs($fp,$lastace);
fclose($fp);
return 0;
}
}
// 發送示例

// 只需要把這部分改成你的信息就行
$sm = new smail( "用戶名", "密碼", "發件smtp伺服器" );
$end = $sm->send( "收件人", "發件人(可以偽造哦)", "標題", "內容" );
if( $end ) echo $end;
else echo "發送成功!$x";
?>

『貳』 PHP使用郵箱發送郵件(phpmailer/phpmailer)

本文以QQ郵箱為案例
1.配置QQ郵箱,獲取SMTP 密碼

3.開啟PHP模塊(早前php.ini)
PHPMailer 需要 PHP 的 sockets 擴展支持,而登錄 QQ 郵箱 SMTP 伺服器則必須通過 SSL 加密,故 PHP 還得包含 openssl 的支持。悔睜升

4.composer 安裝最新版發送郵碧老件類庫
composer require phpmailer/phpmailer:6.1.5

TP5.1類庫封裝

『叄』 php如何發送郵件

php發送郵件,php發送電子郵件,使用php發送郵件,php如何發送郵件
方法/步驟
1
在實際項目開發中,我們經常需要得到用戶的反饋信息並及時回復。普通的留言板有一定的內容限制,而悉春郵件則能滿足這個需求。今天給大家演示一下怎麼利用PHP發送電子郵件。
2
1.首先我們需要一個用來發送電子郵件的文件的程序,也就是一個php文件,流行的phpmail有很多,今天以smtp.php為例來演示。


3
2.將其復制到你的項目文件內,具體路徑根據自己的實際情況,這里建了一個test文件,用來設置郵件參數,大家也可以自定義郵件參數文件。(PS:一般都是通過表單接受的)

4
3.smtp.php文件如圖所示,大家不需要管代碼,會用就行,有時間了也可以研究研究哈。

5
4.設置郵虧陸凳件參數,具體代碼如下:
//引入發送郵件類
require("smtp.php");

//使用163郵箱伺服器
$smtpserver="smtp.163.com";

//163郵箱伺服器埠
$smtpserverport=25;

//你的163伺服器郵箱賬號
$smtpusermail="@163.com";

//收件人郵箱
$smtpemailto="@qq.com";

//你的郵箱賬號(去掉@163.com)
$smtpuser="";//SMTP伺服器的用戶帳號

//你的郵箱密碼
$smtppass="";//SMTP伺服器的用戶密碼

6
5.設置郵件內容,代碼如下:
//郵件主題
$mailsubject="測試郵件發送";

//郵件內容
$mailbody="PHP+MySQL";

//郵件格式(HTML/TXT),TXT為文本郵件
$mailtype="TXT";

//這裡面的一個true是表示使用身份驗證,否則不使用身份驗證.
$smtp=newsmtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);

//是否顯示發送的調試信息
$smtp->debug銷旅=TRUE;

//發送郵件
$smtp->sendmail($smtpemailto,$smtpusermail,$mailsubject,$mailbody,$mailtype);
刷新頁面後郵件發送,參數不出錯的話1分鍾左右即可發送成功。我在測試的時候沒有發送成功提示,自己登錄郵箱查看的,如圖所示,內容和上面設置的一樣。

熱點內容
夢幻西遊有什麼腳本 發布:2024-05-04 09:33:43 瀏覽:716
I編程視頻 發布:2024-05-04 09:33:31 瀏覽:377
java客戶端程序 發布:2024-05-04 08:08:11 瀏覽:939
騰訊視頻賬號和密碼哪裡看 發布:2024-05-04 08:08:11 瀏覽:451
專網數據存儲安全問題分析 發布:2024-05-04 07:33:28 瀏覽:131
如何獲得列印機無線密碼 發布:2024-05-04 06:44:59 瀏覽:418
上古諸神錄哪裡改密碼 發布:2024-05-04 06:43:55 瀏覽:263
灌籃高手手游自動蓋帽腳本 發布:2024-05-04 06:42:31 瀏覽:425
javajs引擎 發布:2024-05-04 06:37:33 瀏覽:798
javalist重復 發布:2024-05-04 06:19:27 瀏覽:511