我已经使用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.
如何修复此错误?
答案 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。