使用PHPMailer 接口问题

请问,
这个接口是不是智能用于gmail的邮箱发送,无法用于其他邮箱的发送,如qq邮箱,网易邮箱等。如何可以的话,那么下面应该怎么配置呢?
QQ图片20161030141705.png

 
已邀请:

aassvsv - 90IT男

赞同来自:

PHPMailer修改Lite文件即可成功.php   QQ SINA HOTMAIL 都可以以上经过测试的
<?php
/**
 * 邮件工具类
 *
 * - 基于PHPMailer的邮件发送
 *
 *  配置
 *
 * 'PHPMailer' => array(
 *   'email' => array(
 *       'host' => 'smtp.gmail.com',
 *       'username' => 'XXX@gmail.com',
 *       'password' => '******',
 *       'from' => 'XXX@gmail.com',
 *       'fromName' => 'PhalApi团队',
 *       'sign' => '<br/><br/>请不要回复此邮件,谢谢!<br/><br/>-- PhalApi团队敬上 ',
 *   ),
 * ),
 *
 * 示例
 *
 * $mailer = new PHPMailer_Lite(true);
 * $mailer->send('chanzonghuang@gmail.com', 'Test PHPMailer Lite', 'something here ...');
 *
 * @author dogstar <chanzonghuang@gmail.com> 2015-2-14
 */

require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPMailer' . DIRECTORY_SEPARATOR . 'PHPMailerAutoload.php';

require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPMailer'.'/class.phpmailer.php';
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPMailer'.'/class.smtp.php';


class PHPMailer_Lite
{
    protected $debug;

    protected $config;

    public function __construct($debug = FALSE) {
        $this->debug = $debug;

        $this->config = DI()->config->get('app.PHPMailer.email');
    }

    /**
     * 发送邮件
     * @param array/string $addresses 待发送的邮箱地址
     * @param sting $title 标题
     * @param string $content 内容
     * @param boolean $isHtml 是否使用HTML格式,默认是
     * @return boolean 是否成功
     */
    public function send($addresses, $title, $content, $isHtml = TRUE)
    {
        $mail = new PHPMailer;
        $cfg = $this->config;
        
        // 实例化PHPMailer核心类
        $mail = new PHPMailer();
        // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
//         $mail->SMTPDebug = 1;
        // 使用smtp鉴权方式发送邮件
        $mail->isSMTP();
        // smtp需要鉴权 这个必须是true
        $mail->SMTPAuth = true;
        // 链接qq域名邮箱的服务器地址
        $mail->Host = $cfg['host'];
        // 设置使用ssl加密方式登录鉴权
        $mail->SMTPSecure = 'ssl';
        // 设置ssl连接smtp服务器的远程服务器端口号
        $mail->Port = $cfg['port'];
        // 设置发送的邮件的编码
        $mail->CharSet = 'UTF-8';
        // 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名
        $mail->FromName = $cfg['fromName'];
        // smtp登录的账号 QQ邮箱即可
        $mail->Username = $cfg['username'];
        // smtp登录的密码 使用生成的授权码
        $mail->Password = $cfg['password'];
        // 设置发件人邮箱地址 同登录账号
        $mail->From = $cfg['username'];
        // 邮件正文是否为html编码 注意此处是一个方法
//         $mail->isHTML(true);
        // 设置收件人邮箱地址
        
        $mail->addAddress($addresses);
        // 添加该邮件的主题
//         $mail->Subject = $title;
        // 添加邮件正文
//         $mail->Body = $content;
        // 为该邮件添加附件
        $mail->addAttachment('./example.pdf');
        // 发送邮件 返回状态
//         $status = $mail->send();
        
        
//         $mail->isSMTP();
//         $mail->Host = $cfg['host'];
//         $mail->SMTPAuth = true;
//         $mail->Username = $cfg['username'];
//         $mail->Password = $cfg['password'];
//         $mail->CharSet = 'utf-8';
//         $mail->Port = $cfg['port'];
//         $mail->From = $cfg['from'];//$cfg['username'];
//         $mail->FromName = $cfg['fromName'];
        
//         $addresses = is_array($addresses) ? $addresses : array($addresses);
//         foreach ($addresses as $address) {
//             $mail->addAddress($address);
//         }
        
//         $mail->WordWrap = 50;
        $mail->isHTML($isHtml);

        $mail->Subject = trim($title);
        $mail->Body = $content . $cfg['sign'];
        
        if (!$mail->send()) {
            if ($this->debug) {
                DI()->logger->debug('Fail to send email with error: ' . $mail->ErrorInfo);
            }

            return false;
        }

        if ($this->debug) {
            DI()->logger->debug('Succeed to send email', array('addresses' => $addresses, 'title' => $title));
        }

        return true;
    }
}
 

aassvsv - 90IT男

赞同来自:

补充一句,SMTP 端口貌似都必须是$mail->Port【465】

要回复问题请先登录注册