标签归档:ThinkPHP

ThinkPHP5.1的Apache和Nginx配置

每次部署ThinkPHP5.1的程序,伪静态总要出点问题,和Laravel、WordPress等程序的不太一样,这里记录一下,备用。

For APACHE:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>

For Nginx:

location / {
    if (!-e $request_filename) {
        rewrite  ^(.*)$  /index.php?s=/$1  last;
    }
}

ThinkPHP使用PHPMailer发送邮件

1、把PHPMailer.class.php, pop3.class.php, smtp.class.php三个文件放入ThinkPHP\Library\Vendor\PHPMailer目录下

2、项目目录下,Common文件夹里建立functions.php, 写入下面代码:

<?php
   
function SendMail($address,$title,$message)
{
     import('Vendor.PHPMailer.PHPMailer');
     $mail=new PHPMailer();   
     $mail->PluginDir=THINK_PATH . 'Library/Vendor/PHPMailer/';  
     // 设置PHPMailer使用SMTP服务器发送Email   
     $mail->IsSMTP();  
     $mail->Port = 25;    
     // 设置邮件的字符编码,若不指定,则为'UTF-8'   
     $mail->CharSet='UTF-8';    
     // 添加收件人地址,可以多次使用来添加多个收件人   
     $mail->AddAddress($address);    
     // 设置邮件正文   
     $mail->Body=$message;    
     // 设置邮件头的From字段。   
     $mail->From=C('MAIL_ADDRESS');    
     // 设置发件人名字   
     $mail->FromName='inrn';    
     // 设置邮件标题   
     $mail->Subject=$title;    
     // 设置SMTP服务器。   
     $mail->Host=C('MAIL_SMTP');
     // 以html方式发送 
     //$mail->IsHTML(true);     
     // 设置为"需要验证"  
     $mail->SMTPAuth=true;    
     // 设置用户名和密码。   
     $mail->Username=C('MAIL_LOGINNAME');   
     $mail->Password=C('MAIL_PASSWORD');    
     // 发送邮件。   
     return($mail->Send());
}
?>

3、项目配置文件夹(Conf)下config.php里写入:

<?php
return array(
     //'配置项'=>'配置值'  
     'MAIL_ADDRESS'=>'1000@inrn.cn', // 邮箱地址
     'MAIL_SMTP'=>'smtp.inrn.cn', // 邮箱SMTP服务器
     'MAIL_LOGINNAME'=>'1000@inrn.cn', // 邮箱登录帐号
     'MAIL_PASSWORD'=>'521a3344', // 邮箱密码    
);

注意:MAIL_LOGINNAME一定要写成和邮箱地址一样的。 否则会出错(Could not authenticate.)

4、在Action中使用下面代码发送邮件:

SendMail($email,"邮件标题","邮件正文");