1

我正在尝试使用 PHPmailer 发送电子邮件,但是当我在 php.ini 中更改 SMTP 服务器时,它并没有在 phpinfo 中更新 - 它仍然显示 localhost。我假设这就是我收到错误的原因SMTP Error: Could not connect to SMTP host

你能帮我找出我无法更改 SMTP 服务器的错误和可能原因吗,即使我可以更改 smtp_port

我已经尝试过使用邮件服务器执行此操作,并且安装 pear 也遇到了很多麻烦,所以我只想完成这项工作。我试过smtp.mail.yahoo.com,smtp.gmail.com和我们自己的邮件服务器,它仍然显示为 localhost。每次进行更改时,我也重新启动

这是我诊断发送简单电子邮件问题的第三天(我发现在 asp.net 中更容易)。如果您需要任何进一步的信息,请告诉我。先感谢您。

4

2 回答 2

1

可能是一个愚蠢的问题,但是您使用的是正确的 php.ini 文件吗?- 在许多安装中,周围可能不止一个。我总是仔细检查我正在更改的 php.ini 文件是否是 phpinfo() 中引用的文件

于 2012-09-24T19:39:58.287 回答
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;
    }
于 2012-09-25T18:45:20.720 回答