憶の年

CommentToMail无法发信的解决方法
最近发现CommentToMail日志报错如下开始发送请求:https://www.529i.com/action...
扫描右侧二维码阅读全文
16
2018/12

CommentToMail无法发信的解决方法

请注意,本文编写于 339 天前,最后修改于 339 天前,其中某些信息可能已经过时。

最近发现CommentToMail日志报错如下

开始发送请求:https://www.529i.com/action/comment-to-mail?send=xxx
Socket 方式发送
请求结束

根本发不出去邮件测试发件又没有问题 气的都想打人
然后各种Google 百度根本没用
然后自己看代码
Plugin.php文件295行

    /**
     * 发送异步请求
     * @param $url
     */
    public static function asyncRequest($url)
    {
        self::isAvailable();
        self::$_adapter == 'Socket' ? self::socket($url) : self::curl($url);
    }

默认使用Socket发信作者 已经封装好了curl
直接把self::$_adapter == 'Socket'改为Curl
然后又报错了 如下

开始执行异步请求
Curl 方式发送
Curl:
cURL error (28): Timeout was reached
请求结束

发现curl执行超时
Plugin.php文件349行

  /**
     * Curl 请求
     * @param $url
     */
    public static function curl($url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_AUTOREFERER, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // 将curl_exec()获取的信息以文件流的形式返回,不直接输出。
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);  // 连接等待时间
        curl_setopt($ch, CURLOPT_TIMEOUT, 1);         // curl允许执行时间
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 跳过证书检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE);  // 从证书中检查SSL加密算法是否存在
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11"); //设置浏览器标识

发现作者只给了1秒直接加个0改为10秒
日志如下

开始执行异步请求
Curl 方式发送
Curl:{"result":true,"amount":1,"success":{"amount":1,"id":["31"]},"fail":{"amount":0,"id":[]}}
请求结束

邮件也收到了问题解决

最后修改:2018 年 12 月 16 日 05 : 30 PM

发表评论

1 条评论

  1. koko

    流淌的命运之河的终点,也许在这一刻就被决定好了。