stream_socket_enable_crypto()php邮件程序中的错误

时间:2017-02-07 14:37:34

标签: php email phpmailer

我已经使用PHP 5.3并且我尝试使用php邮件程序LIBRARY发送邮件..但我收到错误

  

警告:stream_socket_enable_crypto()[streams.crypto]:此流不支持第313行的D:\ xampp \ htdocs \ mail_check \ mail \ class.smtp.php中的SSL /加密   邮件程序错误:SMTP连接()失败。

$sendfrm_name = "xxxx";
        $sendfrm_id = "ddsdsd@gmail.com";

        $sendtoname = 'yyyy';
        $sendto = 'yyyyyy@gmail.com';

        $cc = '';

        include("mail/PHPMailerAutoload.php");
        include("mail/class.PHPMailer.php");
        include("mail/class.smtp.php");

        $mail = new PHPMailer;
        $mail-> isSMTP();
        $mail-> Host = 'smtp.gmail.com';
        $mail-> SMTPAuth = true;
        $mail->smtpConnect = array(
        'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
        )
        );
        $mail-> Username = 'fffffff@gmail.com';
        $mail-> Password = 'ekdbaffdfba..';
        $mail-> SMTPSecure = 'tls';
        $mail-> Port = 587; //587
        $mail-> setFrom($sendfrm_id, $sendfrm_name);
        $mail-> addAddress($sendto, $sendtoname);
        $mail-> addReplyTo($sendto, $sendtoname);
        //$mail->addCC($cc);
        $mail->WordWrap = 50;
        $mail->isHTML(true);
        $mail->Subject = "Test Mail";
        $mail->Body = "Name: ".$sendfrm_name ."<br /> Email: ".$sendfrm_id;
        if(!$mail->send())
        {
            echo "Mailer Error: ".$mail->ErrorInfo;
        }
        else
        {
            echo "1";
        }

我收到错误Warning: stream_socket_enable_crypto() [streams.crypto]: this stream does not support SSL/crypto in D:\xampp\htdocs\mail_check\mail\class.smtp.php on line 313 Mailer Error: SMTP connect() failed.

如何修复此错误?

2 个答案:

答案 0 :(得分:2)

    $mail->smtpConnect = array(
        'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
        )
    );

    $mail->SMTPSecure = false;
    $mail->SMTPAutoTLS = false;

答案 1 :(得分:0)

您的PHP安装缺少允许对此类流进行TLS加密的SSL扩展。有类似的问题可以解答,例如this one

您不应该为PHP 5.3编写任何新代码 - 它不再受支持且可能存在安全漏洞;更新可能会为您提供您仍然缺少的包装。

它不一定会影响这个特定的问题,但是您已经在一个过时的示例上基于您的代码,并且没有按照文档告诉您的方式加载PHPMailer类 - 确保您已经使用the latest version并将您的代码基于the gmail example provided with PHPMailer