zoukankan      html  css  js  c++  java
  • 使用PHPMail发送邮件遇到SMTP Error: Could not connect to SMTP host.错误的解决方法

    简单的发送邮件类:

    <?php
    /**
     * Created by PhpStorm.
     * User: gyc
     * Date: 2020/4/4
     * Time: 下午2:42
     * 邮件发送
     */
    
    namespace appplugins;
    use PHPMailerPHPMailerPHPMailer;
    use PHPMailerPHPMailerSMTP;
    class Mail
    {
        public static function send(string $sendto, string $title, string $content)
        {
            $config = config('mail');
            $mail = new PHPMailer(true);
    
            $mail->SMTPDebug = SMTP::DEBUG_SERVER;
            $mail->isSMTP();
            $mail->CharSet = "utf8";// 编码格式为utf8
            $mail->Host       = $config['host'];                    // SMTP 服务器地址
            $mail->SMTPAuth   = $config['smtpAuth'];                // 开启SMTP验证
            $mail->Username   = $config['userName'];               // SMTP 用户名
            $mail->Password   = $config['password'];                // SMTP 密码
            $mail->SMTPSecure = 'ssl';         // //使用ssl协议方式
            $mail->SMTPOptions = array(
                'ssl' => array(
                    'verify_peer' => false,
                    'verify_peer_name' => false,
                    'allow_self_signed' => true
                )
            );
            $mail->Port       = $config['port'];                   // qq邮箱的ssl协议方式端口号是465/587
    
            //信息设置
            $mail->setFrom('727306285@qq.com', '自定义');      //发件人信息设置 这里会显示为Mailer(xxxx@qq.com),Mailer是当做名字显示
            $mail->addAddress($sendto);  // 设置收件人信息
            //$mail->addReplyTo('', '');// 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址
    
            // 邮件内容
            $mail->isHTML(true);
            $mail->Subject = $title; //邮件标题
            $mail->Body = $content;// 邮件正文
            if (!$mail->send()){
                echo $mail->ErrorInfo;
            }else{
                echo '邮件发送成功!';
            }
        }
    }
    

    解决方法:

    原来的:

    $this->smtp_conn =fsockopen(
        $host,
    $port,
    $errno,
    $errstr,
    $timeout
    );

    修改为:
    $this->smtp_conn = @stream_socket_client(
    $host,
    $port,
    $errno,
    $errstr,
    $timeout
    );
    ### 另:邮件密码是在邮箱设置里面的授权码,而不是登录密码 

      

  • 相关阅读:
    java.util.Dictionary源码分析
    java.util.HashMap源码分析
    公钥密码与数字签名
    迭代器模式(Iterator Pattern)
    EIGamal密码体制
    RSA安全性问题
    观察者模式(Observer Pattern)
    不对称密钥密码体系之RSA
    大道至简第七章读后感
    产生随机数
  • 原文地址:https://www.cnblogs.com/guoyachao/p/12632155.html
Copyright © 2011-2022 走看看