我正在尝试使用PHPmailer发送电子邮件,但是当我在php.ini中更改SMTP服务器时,它没有在phpinfo中更新 - 它仍然显示localhost。我假设这就是为什么我收到错误SMTP Error: Could not connect to SMTP host
。
即使我可以更改smtp_port
,您能帮我找到错误以及无法更改SMTP服务器的可能原因吗?我已经尝试过使用邮件服务器,我在安装pear时遇到了很多麻烦,所以我只是想让这个工作。我已经尝试了smtp.mail.yahoo.com
,smtp.gmail.com
和我们自己的邮件服务器,它仍然显示为localhost。每次进行更改时我都会重新启动
这是我第3天诊断发送简单电子邮件的问题(我发现在asp.net中更容易)。如果您需要任何进一步的信息,请告诉我。提前谢谢。
答案 0 :(得分:1)
可能是一个愚蠢的问题,但您使用的是正确的php.ini文件吗? - 在许多安装中,周围可能有不止一个。我总是仔细检查我正在更改的php.ini文件是phpinfo()
中提到的文件答案 1 :(得分:0)
进一步思考,我使用phpmailer,但没有在php.ini中设置smtp服务器。相反,我创建了一个扩展phpmailer的新类,并在那里指定我的SMTP设置,如下所示。
这允许我为多个站点配置SMTP设置,而无需触及php.ini或标准的phpmailer文件。
<?php
require_once('initialise.inc.php'); // Initialising constants including LIB_PATH & DS
require_once(LIB_PATH.DS."phpmailer".DS."class.phpmailer.php");
require_once(LIB_PATH.DS."phpmailer".DS."class.smtp.php");
class my_phpmailer extends phpmailer {
public $From = "me@example.com"; // Email Address
public $FromName = "My Name"; // Name
public $Host = "mailserver.example.com";
public $Mailer = "smtp";
public $WordWrap = 75;
public $Username = "***************"; // SMTP account username
public $Password = "********"; // SMTP account password
function __construct() {
}
public function __toString() {
return $this;
}