ThinkPHP5整合PHPMailer批量发送邮件

所需要的扩展类库:https://github.com/timeblog/thinphp5-case/tree/master/mailer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
&lt ;?php
namespace app\demo\controller ;
use think\Loader ;
class  Mail
{
    public  function index ( ) {
        $emails = [ ‘920668625@qq.com’ , ‘xxxxxxxx@qq.com’ , ‘xxxxxxxxx@qq.com’ ] ;
        if ( is_array ( $emails ) ) {
            foreach ( $emails  as  $emails ) {
                 $result = self :: send_email ( $emails , ‘测试邮件’ , ‘内容
…’
) ;
             }
        } else {
            $result = self :: send_email ( $emails , ‘测试邮件’ , ‘内容
…’
) ;
        }
        if ( $result [ ‘error’ ] !== 0 ) {
            return  ‘发送邮件失败
. $result [ ‘message’ ] ;
        }
    }
    /**
     * 发送邮件
     * @param  string $address 需要发送的邮箱地址 发送给多个地址需要写成数组形式
     * @param  string $subject 标题
     * @param  string $content 内容
     * @return boolean       是否成功
     */

    private  function send_email ( $address , $subject , $content ) {
         $email_smtp =config ( ‘MAIL_CONFIG.EMAIL_SMTP’ ) ; //smtp
         $email_username =config ( ‘MAIL_CONFIG.EMAIL_USERNAME’ ) ; // 账号
         $email_password =config ( ‘MAIL_CONFIG.EMAIL_PASSWORD’ ) ; //是授权码;不是登录的密码,否则SMTP connect() failed;
         $email_from_name =config ( ‘MAIL_CONFIG.EMAIL_FROM_NAME’ ) ; // 发件人昵称
         $email_smtp_secure = ; // 如果使用QQ邮箱;需要把此项改为  ssl
         $email_port = ’25’ ; // 如果使用QQ邮箱;需要把此项改为  465
         if ( empty ( $email_smtp )  ||  empty ( $email_username )  ||  empty ( $email_password )  ||  empty ( $email_from_name ) ) {
             return  [ “error” =&gt ; 1 , “message” =&gt ; ‘邮箱配置不完整’ ] ;
         }
        Loader :: import ( ‘mailer.Phpmailer’ ) ;
        Loader :: import ( ‘mailer.Smtp’ ) ;
         $phpmailer = new \Phpmailer ( ) ;
         // 设置PHPMailer使用SMTP服务器发送Email
         $phpmailer -&gt ;IsSMTP ( ) ;
         // 设置设置smtp_secure
         $phpmailer -&gt ;SMTPSecure = $email_smtp_secure ;
         // 设置port
         $phpmailer -&gt ;Port = $email_port ;
         // 设置为html格式
         $phpmailer -&gt ;IsHTML ( true ) ;
         // 设置邮件的字符编码’
         $phpmailer -&gt ;CharSet = ‘UTF-8’ ;
         // 设置SMTP服务器。
         $phpmailer -&gt ;Host = $email_smtp ;
         // 设置为”需要验证”
         $phpmailer -&gt ;SMTPAuth = true ;
         // 设置用户名
         $phpmailer -&gt ;Username = $email_username ;
         // 设置密码
         $phpmailer -&gt ;Password = $email_password ;
         // 设置邮件头的From字段。
         $phpmailer -&gt ;From = $email_username ;
         // 设置发件人名字
         $phpmailer -&gt ;FromName = $email_from_name ;
         // 添加收件人地址,可以多次使用来添加多个收件人
         $phpmailer -&gt ;AddAddress ( $address ) ;
         // 设置邮件标题
         $phpmailer -&gt ;Subject = $subject ;
         // 设置邮件正文
         $phpmailer -&gt ;Body = $content ;
         // 发送邮件。
         if ( ! $phpmailer -&gt ;Send ( ) )  {
             $phpmailererror = $phpmailer -&gt ;ErrorInfo ;
             return  array ( “error” =&gt ; 1 , “message” =&gt ; $phpmailererror ) ;
         } else {
             return  array ( “error” =&gt ; 0 ) ;
         }
    }
}

» ThinkPHP5整合PHPMailer批量发送邮件