php ini 配置邮件发送,发邮件类,不需要配置PHP.INI(PHPWIND中分离且改造)

/*

PHPWIND中分离出来.略加以改造,使之使用更方便!

不需要配置php.ini文件.通过fsock发邮件,速度还行.

漠北怪叟做的发邮件的类.其实很简单只是把基本功能 装在类里面方便调用而已.

我的QQ 4620498 欢迎大家改进

做程序员.NND就是累啊,都不知明天在何方啊.

2006.6.22

调用方式

//

sendemail('EMAIL','subject主题','content内容'[,'发件方式 0=为文本 1为HTML'] bool

返回true 表示发件成功,否则为不成功!

例:

require("./inc/mail.inc.php");

if (sendemail("hjc@mypcok.com","测试邮件发送@","这是一份用PHP发送的PHP测试邮件
以下是测试HTML的反映!")) echo "ok!";

*/

/*此行以下可以保存为为公用文件mail.inc.php,前提是设置好以下七个设置*/

$M_db= new Mailconfig(

array(

'host'        => "smtp.21cn.com",                //发件服务器的地址

'port'        => 25,                                //发件服务器的端口一般默认为25

'auth'        => "测试帐号",                        //发件人姓名

'isck'        =>        1,                        //发件服务器需要密码验证 NND,现在的服务器基本都要验证的.

'from'        => "test@21cn.net",                //发件人EMAIL

'user'        => "test",                        //发件人帐号名称

'pass'        => "pass",                        //发件人帐号密码

)

);

/*如果需要在发件时设置可将以下保存为公用文件mail.inc.php 上面七个变量在发件前设置.*/

Class Mailconfig {

var $smtp;

function Mailconfig($smtp=array()){

$this->smtp['host'] = $smtp['host'];

$this->smtp['port'] = $smtp['port'];

$this->smtp['auth'] = $smtp['auth'];

$this->smtp['isck'] = $smtp['isck'];

$this->smtp['from'] = $smtp['from'];

$this->smtp['user'] = $smtp['user'];

$this->smtp['pass'] = $smtp['pass'];

}

}

function sendemail($toemail,$subject,$message,$html=0){

global $M_db,$sendtoname;

$M_db->smtp['html']=$html;

$db_charset="gb2312";

if(!$fp=fsockopen($M_db->smtp['host'],$M_db->smtp['port'],&$errno,&$errstr,30))        return false;

if(substr(fgets($fp,512),0,3)!="220") return false;

if($M_db->smtp['isck']) {

fwrite($fp,"EHLO mobeiguaishou qq4620498\r\n");

while($rt=strtolower(fgets($fp,512))){

if(strpos($rt,"-")!==3 || empty($rt)){

break;

}elseif(strpos($rt,"2")!==0){

return false;

}

}

fwrite($fp, "AUTH LOGIN \r\n");

if(substr(fgets($fp,512),0,3) != 334) return false;

fwrite($fp, base64_encode($M_db->smtp['user'])." \r\n");

if(substr(fgets($fp,512),0,3) != 334) return false;

fwrite($fp, base64_encode($M_db->smtp['pass'])." \r\n");

if(substr(fgets($fp,512),0,3) != 235) return false;

} else {

fwrite($fp, "HELO mobeiguaishou qq4620498\r\n");

}

$from = $M_db->smtp['from'];

$from = preg_replace("/.*\.*/", "\\1", $from);

fwrite($fp, "MAIL FROM: \r\n");

if(substr(fgets($fp,512),0,3) != 250){

return false;

}

fwrite($fp, "RCPT TO: \r\n");

if(substr(fgets($fp,512),0,3) != 250){

return false;

}

fwrite($fp, "DATA\r\n");

if(substr(fgets($fp,512),0,3) != 354){

return false;

}

$subject = str_replace("\n",' ',$subject);

$msg  = "Date: ".Date("r")."\r\n";

$msg .= "From: =?$db_charset?B?".base64_encode($M_db->smtp['auth'])."?=\r\n";

$msg .= "To: =?$db_charset?B?".base64_encode($sendtoname)."?=\r\n";

$msg .= "Subject: =?$db_charset?B?".base64_encode($subject)."?=\r\n";

$msg .= "X-mailer: Php Auto SendMail for mobeiguaishou qq4620498\r\n";

$msg .= "Mime-Version: 1.0\r\n";

if ($M_db->smtp['html'])

$msg .= "Content-Type: text/html;\r\n";

else

$msg .= "Content-Type: text/plain;\r\n";

$msg .= "\tcharset=\"$db_charset\"\r\n";

$msg .= "Content-Transfer-Encoding: base64\r\n\r\n";

$msg .= base64_encode($message)."\r\n.\r\n";

fwrite($fp, $msg);

fwrite($fp, "QUIT\r\n");

fclose($fp);

return true;

}

?>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值