您的位置:

php一个发送邮件的类,php发邮件源码

本文目录一览:

php 发送邮件类

服务器的 MTA (Mail Transfer Agent,也就是邮件服务器)设置不允许发你的邮件。

如果有权限,那就改 MTA (sendmail,postfix, qmail 等)的设置。

没有权限修改服务器的设置,可以尝试通过 SMTP 发邮件。php发邮件的类基本都会提供设置SMTP的函数。

如何通过一个php程序给不同的邮箱发送不同的邮件

1.需要一个用来发送电子邮件的文件的程序,也就是一个php文件,流行的phpmail有很多,今天以smtp.php为例演示。

2.将其复制到你的项目文件内,具体路径根据自己的实际情况,这里建了一个test文件,用来设置邮件参数,大家也可以自定义邮件参数文件。(PS:一般都是通过表单接受的)

3.smtp.php文件引入。

4.设置邮件参数,具体代码如下:

//引入发送邮件类

require("smtp.php");

$smtpserver = "smtp.163.com";

$smtpserverport = 25;

//你的163服务器邮箱账号

$smtpusermail = "@163.com";

//收件人邮箱

$smtpemailto = "@qq.com";

//你的邮箱账号(去掉@163.com)

$smtpuser = "";//SMTP服务器的用户帐号

//你的邮箱密码

$smtppass = ""; //SMTP服务器的用户密码

5.设置邮件内容,代码如下:

//邮件主题

$mailsubject = "测试邮件发送";

//邮件内容

$mailbody = "PHP+MySQL";

//邮件格式(HTML/TXT),TXT为文本邮件

$mailtype = "TXT";

//这里面的一个true是表示使用身份验证,否则不使用身份验证.

$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);

//是否显示发送的调试信息

$smtp-debug = TRUE;

//发送邮件

$smtp-sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);

刷新页面后邮件发送,参数不出错的话1分钟左右即可发送成功。

至于发几个人,如何发自己定义下就行

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中的mail函数发送html格式的信

采用 phpmailer类,来做邮件发送,是很多PHP程序所采用的一个类发送

require(ROOT.'/class/phpMailer.class.php');//邮件发送类

/**

* 发送邮件

* @param string $to 接收人邮件地址

* @param string $title 邮件标题

* @param string $contents 邮件内容 支持HTML格式

* @param string $type 判断是否要加附件

* @param string $accessory 附件的名字

* @return 成功返回true,失败返回错误信息

*/

function sendEmail($to,$title,$contents,$type = '',$accessory =''){

$mail = new PhpMailer(true);

$mail-IsSMTP();

$mail-CharSet ="UTF-8";//编码

$mail-Debugoutput = 'html';// 支持HTML格式

$mail-Host = T_SMTP_SERVER;//HOST 地址

$mail-Port = 25;//端口

$mail-SMTPAuth = true;

$mail-Username = T_SMTP_LOGIN;//用户名

$mail-Password = T_SMTP_PASSWORD;//密码

$mail-SetFrom(T_SMTP_FROM,T_SMTP_FROM_NAME);//发件人地址, 发件人名称

$mail-AddAddress($to);//收信人地址

//$mail-Subject = "=?utf-8?B?" . base64_encode() . "?=";

if (!empty($type)) {

$mail-AddAttachment($type,$accessory); // 添加附件,并指定名称

}

$mail-Subject = $title;//邮件标题

$mail-MsgHTML($contents);

if ($mail-Send()){

return true;

}else{

return $mail-errorMessage();

}

}

PHP邮件发送类怎么弄,我的出错了,帮我看下

if(mysql_insert_id()){//写入成功,发邮件

跟这个语句对于的大括号呢??

你这个错误很明显,告诉你是缺少闭合结束符,一般就是指大括号

求一个能用的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();