Home  >  Article  >  Backend Development  >  PHP mail sending function--Detailed introduction of ThinkPHP3.2.3 code

PHP mail sending function--Detailed introduction of ThinkPHP3.2.3 code

黄舟
黄舟Original
2017-03-04 14:23:002110browse

First step: download a PHPMailer plug-in on the Internet, plug-in address "http://www.php.cn/" After downloading and decompressing, we only need to use two of the files here, as shown in the following figure:

Place the two files class.phpmailer.php and class.smtp.php respectively to
ThinkPHP/Library/Vendor/PHPMailer/class .phpmailer.php (note case)
ThinkPHP/Library/Vendor/PHPMailer/class.smtp.php

Note: Now The default third-party class library directory of thinkPHP is placed. If it is defined in index.php such as define('VENDOR_PATH',APP_PATH.'Common/Vendor/'); then the file placement path must be the same as it to avoid class ' PHPMailer' not found situation.

2. Create a user-defined function file Application/Home/Common/function.php and place the following functions:

1 /**
 2  * 功能:邮件发送函数
 3  * @param string $to 目标邮箱
 4  * @param string $subject 邮件主题(标题)
 5  * @param string $to 邮件内容
 6  * @return bool true
 7  */
 8  function sendMail($to, $subject, $content) {
 9     vendor('PHPMailer.class#smtp'); 
10     vendor('PHPMailer.class#phpmailer');    //注意这里的大小写哦,不然会出现找不到类,PHPMailer是文件夹名字,class#phpmailer就代表class.phpmailer.php文件名
11     $mail = new PHPMailer();
12     // 装配邮件服务器
13     if (C('MAIL_SMTP')) {
14         $mail->IsSMTP();
15     }
16     $mail->Host = C('MAIL_HOST');  //这里的参数解释见下面的配置信息注释
17     $mail->SMTPAuth = C('MAIL_SMTPAUTH');  
18     $mail->Username = C('MAIL_USERNAME');
19     $mail->Password = C('MAIL_PASSWORD');
20     $mail->SMTPSecure = C('MAIL_SECURE');
21     $mail->CharSet = C('MAIL_CHARSET');
22     // 装配邮件头信息
23     $mail->From = C('MAIL_USERNAME');
24     $mail->AddAddress($to);
25     $mail->FromName = C('MAIL_FROMNAME');
26     $mail->IsHTML(C('MAIL_ISHTML'));
27     // 装配邮件正文信息
28     $mail->Subject = $subject;
29     $mail->Body = $content;
30     // 发送邮件
31     if (!$mail->Send()) {
32         return FALSE;
33     } else {
34         return TRUE;
35     }
36  }


3. In the above function, the C method is used to load some configuration information, so we have to add the following configuration information to the configuration file (default/Application/Home/Conf/config.php) :

<?php
 2  return array(
 3     //其他配置项省略......
 4     // 配置邮件发送服务器
 5     &#39;MAIL_SMTP&#39;            =>  TRUE,
 6     &#39;MAIL_HOST&#39;            =>  &#39;smtp.163.com&#39;,          //邮件发送SMTP服务器
 7     &#39;MAIL_SMTPAUTH&#39;   =>  TRUE,
 8     &#39;MAIL_USERNAME&#39;   =>  &#39;123***@163.com&#39;,       //SMTP服务器登陆用户名
 9     &#39;MAIL_PASSWORD&#39;   =>  &#39;123456abc&#39;,              //SMTP服务器登陆密码
10     &#39;MAIL_SECURE&#39;         =>  &#39;tls&#39;,
11     &#39;MAIL_CHARSET&#39;       =>  &#39;utf-8&#39;,
12     &#39;MAIL_ISHTML&#39;         =>  TRUE,
13     &#39;MAIL_FROMNAME&#39; =>  &#39;某某网站客户&#39;,
14  );

4. Start calling, assuming it is accessed through the URL /?m=home&c=index&a=send, then we add the corresponding method to the Application/Home/Controller/IndexController.class.php file, as follows:

1 <?php
 2  namespace Home\Controller;
 3  use Think\Controller;
 4  class IndexController extends Controller {
 5     public function index(){
 6         
 7     }
 8     public function send(){
 9         if(sendMail(&#39;vsiryxm@qq.com&#39;,&#39;你好!邮件标题&#39;,&#39;这是一篇测试邮件正文!&#39;)){
10             echo &#39;发送成功!&#39;;
11         }
12         else{
13             echo &#39;发送失败!&#39;;
14         }
15     }
16  }

The above is the detailed introduction of the PHP email sending function-ThinkPHP3.2.3 code. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn