php发送邮件
Posted 水杉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php发送邮件相关的知识,希望对你有一定的参考价值。
1. php内置的mail()函数
php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,所以使用mail函数往往无法成功发送email。
自己如果熟悉SMTP协议,结合socket功能就可以编写高效稳定的邮件发送程序,但对一般用户来说太困难.好在互联网上已经有很多别人编写好的邮件发送模块,我们只需要下载后简单调用即可,十分方便.
2. 使用封装的STMP协议的邮件类
这里推荐 phpmailer
第一步:需要下载PHPMailer文件包
第二步:确认你的服务器系统已经支持socket 如下图,通过phpinfo();查看是否支持sockets
如果没有这一项就请注意: socket 是属于PHP扩展部分,编译时必须给定一个用于./configure --enable-sockets 的配置选项。
第三步:把文件解压到你的web服务器目录下,调用类就可以了,说明:首先包含 class.phpmailer.php,然后创建对象,设置参数,调用成员函数。具体请见下面的示例代码:
<?php ini_set(‘date.timezone‘,‘PRC‘); require_once(‘./class.phpmailer.php‘); include_once("class.smtp.php"); //可选,否则会在class.phpmailer.php中包含 $mail = new PHPMailer(true); //实例化PHPMailer类,true表示出现错误时抛出异常 $mail->IsSMTP(); // 使用SMTP try { $mail->CharSet ="UTF-8";//设定邮件编码 $mail->Host = "smtp.163.com"; // SMTP server $mail->SMTPDebug = 1; // 启用SMTP调试 1 = errors 2 = messages $mail->SMTPAuth = true; // 服务器需要验证 $mail->Port = 25; //默认端口 // $mail->Port = 465; // ssl验证时默认端口 // $mail->SMTPSecure = "ssl"; // $mail->SMTPSecure = "ssl"; // $mail->Host = "smtp.gmail.com"; $mail->Username = "[email protected]"; //SMTP服务器的用户帐号 $mail->Password = "fanyi303114"; //SMTP服务器的用户密码 $mail->AddReplyTo(‘[email protected]‘, ‘回复‘); //收件人回复时回复到此邮箱,可以多次执行该方法 //收件人如果多人发送循环执行AddAddress()方法即可 还有一个方法时清除收件人邮箱ClearAddresses() $mail->AddAddress(‘[email protected]‘, ‘liuchuanwei‘); $mail->SetFrom(‘[email protected]‘, ‘发件人‘);//发件人的邮箱 //$mail->AddAttachment(‘./img/bloglogo.png‘); // 添加附件,如果有多个附件则重复执行该方法 $mail->Subject = ‘这里是邮件的标题‘ . date(‘Y-m-d H:i:s‘); //以下是邮件内容 $mail->Body = ‘<h1>邮件内容</h1><font color=red>测试颜色</font>‘ . date(‘His‘); $mail->Ishtml(true); //$body = file_get_contents(‘tpl.html‘); //获取html网页内容 //$mail->MsgHTML(str_replace(‘\\‘,‘‘,$body)); $mail->Send(); echo "Message Sent OK"; } catch (phpmailerException $e) { echo $e->errorMessage(); //从PHPMailer捕获异常 } catch (Exception $e) { echo $e->getMessage(); } ?>
以上是关于php发送邮件的主要内容,如果未能解决你的问题,请参考以下文章