发送邮件
函数如下
屏蔽掉这个输出语句就ok了
下载开源项目PHPMailer
把着三个文件拷贝到tp项目下
把文件名称改为(与php文件里面的类的名字一致)
在每个文件的上方加上命名空间(根据对应的文件位置来,这里是Home模块下的Lib文件夹下)
namespace Home\Lib;
端口号的设置,没有使用ssl加密方式的话,用25端口号
写一个配置文件
return array(
//'配置项'=>'配置值'
//smtp服务器,这里用的是qq的,要邮箱开通smtp才能用
'SMTP_HOST' => 'smtp.qq.com', //SMTP服务器
//smtp服务器的端口号,因为没有使用ssl加密,所以是这个
'SMTP_PORT' => 25, //SMTP服务器端口
//这里就是邮箱的帐号了
'SMTP_USER' => 'xxxxxx@qq.com', //SMTP服务器用户名
//邮箱密码
'SMTP_PASS' => '********', //SMTP服务器密码
//这里的email好像回拿去和上面密码校验,所以要和上面一直
'FROM_EMAIL' => 'xxxxxx@qq.com', //发件人EMAIL
//这里是发送过去的邮件显示的名称,可以随便填
'FROM_NAME' => 'xxxx', //发件人名称
//下面两个没用到,不知道是做什么的
'REPLY_EMAIL' => '', //回复EMAIL(留空则为发件人EMAIL)
'REPLY_NAME' => '', //回复名称(留空则为发件人名称)
);
函数如下
//发送邮件
function send_email($to,$name,$content){
$mail=new \Home\Lib\PHPMailer();
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->Host = C('SMTP_HOST'); // 您的企业邮局域名
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = C('SMTP_USER'); // 发送方邮件地址(请填写完整的email地址)
$mail->Password = C('SMTP_PASS'); //发送放邮件密码
$mail->Port=C('SMTP_PORT');
$mail->From = C('FROM_EMAIL'); //发送方邮件地址
$mail->FromName = C('FROM_NAME');
$mail->AddAddress("$to", "$name");
//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
$mail->CharSet = "utf-8";
$mail->Subject = "测试"; //邮件标题
$mail->Body = $content; //邮件内容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略
if(!$mail->Send())
{
return $mail->ErrorInfo;
}
return "ok";
}
使用
$test=send_email('lisi@qq.com','lisi','http://www.blog.com">点击');
红色超链接部分,要使用这样的格式http://www.blog.com,开始用http://blog点击之后不跳转
在发送邮件失败的时候,在自己抛出异常之前phpmailer类回自己输出异常信息,有时需要返回json数据时会比较麻烦,如何屏蔽?
在phpmailer类的send方法中有
//异常信息输出
//echo $e->getMessage()."\n";
return false;
屏蔽掉这个输出语句就ok了