0

我正在尝试为我的网站设置身份验证电子邮件。我不需要任何花哨或安全的东西,但我在试图让它发挥作用时遇到了巨大的麻烦。

这是我的PHP

function emailconfirmation($temppass, $emailaddress) {
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 1;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'tls';
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;
    $mail->Username = 'myEmail@gmail.com';
    $mail->Password = 'myGmailPassword';
    $mail->SetFrom('myEmail@gmail.com');
    $mail->AddAddress($emailaddress);
    $mail->Subject = 'Test';
    $mail->Body    = 'test authentication key: ' . $temppass;
    if(!$mail->send()) {
        return 'Error: ' . $mail->ErrorInfo;
    } else {
        return true;
    }
}

这是它不断吐出的错误

2013-09-14 22:43:13 CLIENT -> SERVER: EHLO www.mydomain.com 2013-09-14 22:43:13 CLIENT -> SERVER: STARTTLS
Warning: stream_socket_enable_crypto(): this stream does not support SSL/crypto in C:\wamp\bin\php\includes\PHPMailer-master\class.smtp.php on line 274
2013-09-14 22:43:13 CLIENT -> SERVER: QUIT 2013-09-14 22:43:13  SMTP ERROR: QUIT command failed: SMTP connect() failed.

你们能提供的任何帮助都会很棒。仅供参考,我已经允许端口 587 通过我的防火墙,并且我发送的电子邮件与我发送的电子邮件不同。谢谢!


编辑:说真的,没人吗?这真的让我很紧张

4

1 回答 1

0

您需要在 WAMP 设置中启用 OpenSSL。

我看到您未注释此行:extension=php_openssl.dll这很好,但显然带有 apache 2.4.4 的 Wampserver 发布时带有错误的 OpenSSL 文件!

根据其他 StackOverflow 响应,您应该自己下载安装 Win32 OpenSSL 文件

然后停止 WAMP,从新安装的 OpenSSL 目录中获取这些文件:

bin\openssl.cfg
bin\libeay32.dll
bin\ssleay32.dll
bin\openssl.exe

将它们复制到您的 WAMP/Apache 目录中的这些文件上:

conf\openssl.cnf (rename the openssl.cfg file to openssl.cnf to overwrite this)
bin\libeay32.dll
bin\ssleay32.dll
bin\openssl.exe

最后,启动 WAMP

于 2013-09-15T00:22:25.683 回答