1

由于我在使用 Ubuntu 时遇到的一些问题,我最近将我的操作系统从 Ubuntu 11.10 更改为 Debian 7.0.0。我已经使用 Apache 2 设置了 LAMP。大多数事情看起来都差不多,但是在 Ubuntu 上运行良好的邮件现在无法正常运行。我使用以下代码。

    $mailDelivery=mail($to,$subject,$message,$headers);
    if ($mailDelivery)
    {
        ?>
        <script type="text/javascript">
        alert("Mail delivery successful");
        </script>
        <?php
    }
    else
    {
        ?>
        <script type="text/javascript">
        alert("Mail delivery failed");
        </script>
        <?php
    }

我检查了 mail() 的输入参数,它们与在 Ubuntu 上成功运行的参数相同。此外,警报框返回

Mail delivery successful

但是,邮件没有显示在地址(这是我的在线地址之一)。

我查看了 php.ini,它有以下几行

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

/var/log/apache2/error.log 中没有关于邮件传递的内容。

我还检查了目标电子邮件地址的垃圾邮件文件夹,那里什么也没有。

我还通过执行将 iptables 从 Ubuntu 转移到 Debian

iptables-save >iptables.save

在 Ubuntu 上,复制 iptables.save 并

iptables-restore <iptables.save

我还进行了以下调用,结果如下。

peter@app-server:/var/www$ sudo cat /var/log/mail.err
peter@app-server:/var/www$ sudo cat /var/log/mail.log
peter@app-server:/var/www$ sudo cat /var/log/mail.warn
peter@app-server:/var/www$ sudo cat /var/log/mail.info
peter@app-server:/var/www$ 
4

1 回答 1

0

好的。我找到了问题的根源。我没有安装 SMTP 服务器。我跑了

sudo apt-get install postfix

这解决了问题。

于 2013-06-01T19:44:28.953 回答