本文目錄一覽:
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-tw/n/196921.html