smtp,phpinfo,sendmail

时间:2012-09-24 19:18:14

标签: php smtp phpinfo

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

即使我可以更改smtp_port

,您能帮我找到错误以及无法更改SMTP服务器的可能原因吗?

我已经尝试过使用邮件服务器,我在安装pear时遇到了很多麻烦,所以我只是想让这个工作。我已经尝试了smtp.mail.yahoo.comsmtp.gmail.com和我们自己的邮件服务器,它仍然显示为localhost。每次进行更改时我都会重新启动

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

2 个答案:

答案 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;
    }