使用PHPMailer发送电子邮件时遇到问题。
我知道有很多关于这方面的问题,但在阅读了很多这些问题后,经过三天毫无结果的尝试,我真的很绝望。所以,我试图通过PHPMailer发送电子邮件:
require 'class.phpmailer.php';
$mail = new PHPMailer();
$mail->PluginDir = './';
$mail->IsSMTP();
$mail->Port = 465;
$mail->Host = 'smtp.gmail.com';
$mail->IsHTML(true);
$mail->Mailer = "smtp";
$mail->SMTPSecure = 'ssl';
$mail->SMTPAuth = true;
$mail->Username = 'myname@gmail.com';
$mail->Password = 'mypassword';
$mail->From = "myname@gmail.com";
$mail->FromName = "MyName";
$mail->addAddress("myname@gmail.com");
$mail->Subject = "Success";
$mail->Body = "Success";
if(!$mail->Send()) echo $mail->ErrorInfo;
else echo "Message has been sent";
当我在笔记本电脑上测试此代码时,它完美无缺。本地php和PHPMailer版本分别为5.3.5和5.2.4。当我尝试在我的网站上传这个脚本时出现问题。托管服务器上的php版本是5.3.3。返回的错误是“以下发件人地址失败:myname@gmail.com:被调用的邮件()没有连接。” 我之前在我的机器上测试代码时遇到过这个错误。问题是在php.ini中没有添加ssl模块(php_openssl.dll)。我添加了它,一切都开始正常。很自然地,当我看到这个错误时,我认为openssl没有加载到托管服务器上。但事实证明情况并非如此 - extension_loaded(“openssl”)返回true。而且,“openssl”包含在从get_loaded_extensions()返回的已加载模块的数组中。 你知道问题可能是什么吗?