尝试通过Gmail服务器使用PHPMail时出错

时间:2013-09-14 22:52:12

标签: php email gmail phpmailer

我正在尝试为我的网站设置身份验证电子邮件。我不需要任何花哨或安全的东西,但是我正在努力让它发挥作用。

这是我的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通过我的防火墙,我发送的电子邮件与我发送的电子邮件不同。谢谢!


编辑: 说真的,没人?这真让我神经紧张

1 个答案:

答案 0 :(得分:0)

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

我看到你取消注释了这一行:extension=php_openssl.dll这很好,但显然Wampserver与apache 2.4.4一起发布了错误的OpenSSL文件!

this other StackOverflow response你应该Download an install the Win32 OpenSSL files 自己。

然后停止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