我正在尝试为我的网站设置身份验证电子邮件。我不需要任何花哨或安全的东西,但是我正在努力让它发挥作用。
这是我的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通过我的防火墙,我发送的电子邮件与我发送的电子邮件不同。谢谢!
编辑: 说真的,没人?这真让我神经紧张
答案 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 。