php發送qq郵件實例講解,php發送郵件實例講解視頻

本文目錄一覽:

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發送郵件函數

PHP發送郵件函數的應用代碼示例:

#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”; //發信計算機名,可隨意  

$smtp_acc = “smp@163.com”; //Smtp認證的用戶名  

$smtp_pass=”pwdpwd”; //Smtp認證的密碼,一般等同pop3密碼  

$smtp_host=”smtp.163.com”; //SMTP伺服器地址,類似 smtp.tom.com  

$from=”smp@163.com”; //發信人Email地址,你的發信信箱地址  

$deliver=$smtp_acc; //回復到指定郵箱  

$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、發送Auth Login,期待返回334  

array(“AUTH LOGIN”.$lb,”334″,”AUTH error:”),  

//3、發送經過Base64編碼的用戶名,期待返回334  

array(base64_encode($smtp_acc).$lb,”334″,”AUTHENTIFICATION error : “),  

//4、發送經過Base64編碼的密碼,期待返回235  

array(base64_encode($smtp_pass).$lb,”235″,”AUTHENTIFICATION error : “));  

//5、發送Mail From,期待返回250  

$smtp[] = array(“MAIL FROM: “.$from.””.$lb,”250″,”MAIL FROM error: “);  

//6、發送Rcpt To。期待返回250  

$smtp[] = array(“RCPT TO: “.$to.””.$lb,”250″,”RCPT TO error: “);  

//7、發送DATA,期待返回354  

$smtp[] = array(“DATA”.$lb,”354″,”DATA error: “);  

//8.0、發送From  

$smtp[] = array(“From: “.$deliver.$lb,””,””);  

//8.2、發送To  

$smtp[] = array(“To: “.$to.$lb,””,””);  

//8.1、發送標題  

$smtp[] = array(“Subject: “.$subject.$lb,””,””);  

//8.3、發送其他Header內容  

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

//8.4、發送一個空行,結束Header發送  

$smtp[] = array($lb,””,””);  

//8.5、發送信件主體  

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

//9、發送「.」表示信件結束,期待返回250  

$smtp[] = array(“.”.$lb,”250″,”DATA(end)error: “);  

//10、發送Quit,退出,期待返回221  

$smtp[] = array(“QUIT”.$lb,”221″,”QUIT error: “);  

 

//打開smtp伺服器埠  

$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=””;  

//發送smtp數組中的命令/數據  

foreach($smtp as $req){  

//發送信息  

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

//如果需要接收伺服器返回信息,則  

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”;  

}  

}  

}  

//關閉連接  

@fclose($fp);  

return $result_str;  

}  

希望上面這段代碼示例能讓大家充分掌握PHP發送郵件函數的運用。

怎麼用php的mail函數發郵件

function sendMail($to, $title, $content) {

    Vendor(‘PHPMailer.PHPMailerAutoload’);

    $mail = new PHPMailer(); //實例化

    $mail-IsSMTP(); // 啟用SMTP

    $mail-Host=C(‘MAIL_HOST’); //smtp伺服器的名稱(這裡以QQ郵箱為例)

    $mail-SMTPAuth = C(‘MAIL_SMTPAUTH’); //啟用smtp認證

    $mail-Username = C(‘MAIL_USERNAME’); //你的郵箱名

    $mail-Password = C(‘MAIL_PASSWORD’) ; //郵箱密碼

    $mail-From = C(‘MAIL_FROM’); //發件人地址(也就是你的郵箱地址)

    $mail-FromName = C(‘MAIL_FROMNAME’); //發件人姓名

    $mail-AddAddress($to,”尊敬的客戶”);

    $mail-WordWrap = 50; //設置每行字元長度

    $mail-IsHTML(C(‘MAIL_ISHTML’)); // 是否HTML格式郵件

    $mail-CharSet=C(‘MAIL_CHARSET’); //設置郵件編碼

    $mail-Subject =$title; //郵件主題

    $mail-Body = $content; //郵件內容

    $mail-AltBody = “”; //郵件正文不支持HTML的備用顯示

    $relt = $mail-Send();

    if(!$relt) {

        writeLog(‘發送郵件錯誤,錯誤信息:’. $mail-ErrorInfo, 1, ‘發送郵箱失敗’);

    }

    return($relt);

}

這個是thinkphp版本的。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/248706.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:29
下一篇 2024-12-12 13:29

相關推薦

  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • IDEA Java發送郵件出現錯誤解決方案

    IDEA Java是一款常用的Java開發工具,很多開發者都使用它來開發Java應用程序。然而,在使用IDEA Java發送郵件時,有可能會出現一些錯誤。本文將從多個方面對該錯誤進…

    編程 2025-04-29
  • 如何在dolphinscheduler中運行chunjun任務實例

    本文將從多個方面對dolphinscheduler運行chunjun任務實例進行詳細的闡述,包括準備工作、chunjun任務配置、運行結果等方面。 一、準備工作 在運行chunju…

    編程 2025-04-28
  • Python存為JSON的方法及實例

    本文將從以下多個方面對Python存為JSON做詳細的闡述。 一、JSON簡介 JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易於人閱…

    編程 2025-04-27
  • 分析if prefixoverrides="and |or"的用法與實例

    if語句是編程語言中最為基礎和常見的控制流語句,而prefixoverrides是if語句的一個重要屬性。其中,prefixoverrides的常見取值為and和or。那麼,這兩者…

    編程 2025-04-27
  • Tanimoto係數用法介紹及實例

    本文將詳細講解Tanimoto係數的定義和使用方法,並提供相關實例代碼以供參考。 一、Tanimoto係數概述 Tanimoto係數也稱為Jaccard係數,是計算兩個集合相似度的…

    編程 2025-04-27
  • C#可變參數的應用與實例

    一、可變參數的概念 可變參數是C#中的一個特性,它允許定義一個參數數量不確定的方法,也稱作變長參數,即方法內傳遞的參數個數可以動態變化。使用可變參數,可以簡化方法的重載,增加函數的…

    編程 2025-04-25
  • 短視頻同行截流

    一、截流技術概述 截流是指在數據傳輸過程中,將一部分數據截取下來然後轉發到另一個網路節點的技術。針對短視頻同行截流技術,目的在於為用戶提供更好的觀看體驗,同時避免了短視頻平台因流量…

    編程 2025-04-24
  • 使用Springboot發送郵件的多種方式

    一、發送簡單文本郵件 在Springboot中,可以使用JavaMailSender類很方便地發送簡單的文本郵件。首先,需要在其配置文件中添加郵件配置,如下所示: spring.m…

    編程 2025-04-23
  • Coremail郵件系統漏洞分析

    一、漏洞概述 Coremail郵件系統是國產商用郵件系統,由北京世紀互聯萬網科技有限公司開發。該郵件系統存在多個漏洞,其中包含身份認證繞過(CVE-2015-0986)、SQL注入…

    編程 2025-04-23

發表回復

登錄後才能評論