經典php發送郵件類,經典php發送郵件類型

本文目錄一覽:

PHP功能齊全的發送郵件類及用法,急,請好心人幫下忙。

是這樣的。SMTP設置只能在windows服務器下使用。

如果你的服務器是Linux。直接就可以使用php的函數mail()發送郵件。

mail函數在windows下是不能夠使用的。只能使用SMTP發送。

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

require(‘PHPMailer/class.smtp.php’);

$mail = new PHPMailer(true);

$mail-IsSMTP();

$mail-CharSet=’UTF-8′;

$mail-SMTPAuth = true;

$mail-Port = 25;

$mail-Host = “smtp.163.com”;//郵箱smtp地址,此處以163為例

$mail-Username = “你的郵箱賬號”;//你的郵箱賬號

$mail-Password = “你的郵箱密碼”;//你的郵箱密碼

$mail-From = “你的郵箱賬號”;//你的郵箱賬號

$mail-FromName = get_option(‘blogname’);

$to = $to;//收件人

$mail-AddAddress($to);

$mail-Subject = $subject;//主題

$mail-Body = $message;//正文

$mail-WordWrap = 80;

//$mail-AddAttachment(“f:/test.png”); //可以添加附件

$mail-IsHTML(true);

$mail-Send();

如何在PHP網頁中發送郵件

先建一個郵件發送的類 sendEmail.class.php頁面:

?

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

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;

}

}

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

“;

else $lastact=”HELO “.$yourname.”

“;

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

“;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

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

//用戶姓名

$lastact=base64_encode($this-username).”

“;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

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

//用戶密碼

$lastact=base64_encode($this-password).”

“;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

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

}

//FROM:

$lastact=”MAIL FROM: “. $this-s_from . “

“;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

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

//TO:

$lastact=”RCPT TO: “. $to .”

“;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

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

//DATA

$lastact=”DATA

“;

fputs($fp, $lastact);

$lastmessage = fgets ($fp,512);

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

//處理Subject頭

$head=”Subject: $subject

“;

$message = $head.”

“.$message;

//處理From頭

$head=”From: $from

“;

$message = $head.$message;

//處理To頭

$head=”To: $to

“;

$message = $head.$message;

//加上結束串

$message .= “

.

“;

//發送信息

fputs($fp, $message);

$lastact=”QUIT

“;

fputs($fp,$lastace);

fclose($fp);

return 0;

}

}

?

然後建立一個發送頁面:sendEmail.php

?php

require_once(‘sendemail.class.php’);

if((isset($_POST[“send”]))($_POST[“send”]==”form1″))

{

//獲取收件人地址

$sendto=$_POST[‘txt1’];

$sendfrom=”發件人郵箱”;

$mailpass=”發件人郵箱密碼”;

$mailserver=”郵箱服務器”;

$subject=$_POST[‘txt3’];

$message =$_POST[‘textarea’];

$sm = new smail( $sendfrom, $mailpass, $mailserver);

$end = $sm-send( $sendto, $sendfrom, $subject, $message );

if( $end ) echo $end;

else echo “scriptalert(‘發送成功’);/script”;

}

?

center

form style=”width:524px; height:107px;” method=”post” name=”form1″ id=”form1″ action=””

table width=”524″ height=”107″ border=”0″ align=”center”

!–DWLayoutTable–

tr

td height=”60″ colspan=”2″ align=”center” valign=”middle” bgcolor=”#999999″font color=”#339933″ size=”+4″ face=”隸書”strong發送電子郵件/strong/font/td

/tr

tr

td width=”109″ height=”44″ align=”left” valign=”middle” bgcolor=”#CCCC99″strongfont size=”5″收件人:/font/strong/td

td width=”405″ align=”left” valign=”middle” bgcolor=”#CCCC99″input type=”text” name=”txt1″//td

/tr

tr

td height=”44″ align=”left” valign=”middle” bgcolor=”#99CCFF”strongfont size=”5″主題:/font/strong/td

td valign=”middle” bgcolor=”#99CCFF”input type=”text” name=”txt3″”//td

/tr

tr

td height=”163″ align=”left” valign=”middle” bgcolor=”#66CCFF”strongfont size=”5″內容:/font/strong/td

td valign=”top” bgcolor=”#66CCFF”textarea name=”textarea” style=”width:405px; height:163px”/textarea/td

/tr

tr

td height=”37″ colspan=”2″ align=”center” valign=”middle” bgcolor=”#6699CC”input type=”submit” value=”發送”//td

/tr

/table

input type=”hidden” name=”send” value=”form1″/

/form

/center

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

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

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • int類型變量的細節與注意事項

    本文將從 int 類型變量的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變量進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變量。 一、定義與聲明 int…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python基本數字類型

    本文將介紹Python中基本數字類型,包括整型、布爾型、浮點型、複數型,並提供相應的代碼示例以便讀者更好的理解。 一、整型 整型即整數類型,Python中的整型沒有大小限制,所以可…

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

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

    編程 2025-04-29
  • Python中的Bool類型判斷

    本篇文章旨在講解Python中的Bool類型判斷。在Python中,Bool類型是經常使用的一種類型,因此掌握其用法非常重要。 一、True和False 在Python中,True…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 《Python數據分析》經典書

    這本經典書可以幫助各位數據科學家快速上手 Python 進行數據分析和處理,下面我們從多個方面闡述一下這本書的亮點和有趣之處。 一、數據科學簡介 《Python數據分析》一書旨在幫…

    編程 2025-04-29
  • Python函數類型有哪些

    本文將從以下幾個方面詳細闡述Python函數類型。 一、內置函數 Python的內置函數是指在Python編程語言中提供的可以直接使用的函數,不需要通過導入模塊等方式引入。 部分常…

    編程 2025-04-29
  • Python變量類型用法介紹

    Python是一種解釋型編程語言,它提供了豐富的數據類型,包括數字、字符串、列表、元組、集合、字典等。Python變量類型的定義是Python程序開發的基礎,本文將從以下幾個方面對…

    編程 2025-04-28

發表回復

登錄後才能評論