初次使用thinkphp框架,开发一个邮件发送功能,由于对框架不熟悉折腾了几个小时终于成功了,以下是代码记录。
此函数只能在ThinkPHP中使用且需要phpmailer扩展的支持;
phpmail的下载地址:
https://code.google.com/a/apache-extras.org/p/phpmailer
将phpmailer解压后放置扩展放置到第三方类库扩展目录下: ThinkPHP/Extend/Vendor/文件夹下即可,并使用vendor方法来导入。更详细介绍参考:http://document.thinkphp.cn/manual_3_2.html#lib_extend
步骤1:创建think_send_mail方法
/** * 系统邮件发送函数 * @param string $to 接收邮件者邮箱 * @param string $name 接收邮件者名称 * @param string $subject 邮件主题 * @param string $body 邮件内容 * @return boolean */ function think_send_mail($to, $name, $subject = ‘‘, $body = ‘‘){ vendor(‘PHPMailer.class#phpmailer‘); //从PHPMailer目录导class.phpmailer.php类文件 $mail = new \PHPMailer;//此处必须加“\”号否则报错 // Inform class to use SMTP $mail->IsSMTP(); // Enable this for Testing $mail->SMTPDebug = 2; // Enable SMTP Authentication $mail->SMTPAuth = true; // Host of the SMTP Server $mail->Host = ‘smtp.126.com‘;//SMTP服务器用户名 // Port of the SMTP Server $mail->Port = 25;//SMTP服务器端口 // SMTP User Name $mail->Username = "my_email_test@126.com";//邮箱地址 // SMTP User Password $mail->Password = "********";//邮箱密码 // Set From Email Address $mail->SetFrom("my_email_test@126.com", $name); // Add Subject $mail->Subject= $subject; // Add the body for mail $mail->MsgHTML($body); // Add To Address $mail->AddAddress($to, $name); // Finally Send the Mail return $mail->Send() ? true : $mail->ErrorInfo; }
步骤2:在控制器调用即可
namespace Account\Controller; use Think\Controller; class AccountController extends Controller { //调用发送邮件功能 public function getPwd(){ $toEmail =$_POST[‘email‘]; $subJect=‘邮件主题‘; $body=‘邮件内容‘; $name=‘发件人名称‘; $result=$this->think_send_mail($toEmail,‘sever‘,$subJect,$body); if($result) echo "ok"; else echo "failed"; } }