使用 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 : Called Mail() without being connected。” 我之前在我的机器上测试代码时遇到过这个错误。问题是 ssl 模块(php_openssl.dll)没有添加到 php.ini 中。我添加了它,一切都开始正常工作。所以很自然,当我看到这个错误时,我认为托管服务器上没有加载 openssl。但事实证明,情况并非如此——extension_loaded("openssl") 返回 true。此外,“openssl” 包含在从 get_loaded_extensions() 返回的加载模块数组中。你知道问题可能是什么吗?