0

我一直在尝试使用 PHP 发送邮件,但我似乎无法让它工作。

我查看了教程,它们使它看起来很简单。然而,它实际上似乎需要比提到的更多的工作。通过研究(为了简短起见),似乎不是“发件人:”标题实际上具有我给它的地址,似乎...... sendmail 用 daemon@ubuntu 替换它或其他东西?好的,即使我不包含标头,我仍然会从 daemon@ubuntu 的 gmail 帐户中收到垃圾邮件(我在 vm 上运行 ubuntu,并将邮件发送到我的 gmail 帐户)。我想这可以解释为什么我在尝试发送邮件时不断收到错误,说“MAIL FROM 命令”中存在错误。

因此,在我开始搞乱 sendmail 之前,这是 daemon@ubuntu 胡说八道的(可能)罪魁祸首吗?教程中提到了诸如 sendmail 之类的东西,但实际上并没有详细说明如何处理它们。我确实确保在我的 php 配置文件中使用了 sendmail。

我听说过 PHPmail 之类的替代邮件服务器或类似的东西。我真的不想参与安装和配置更多软件,除非我真的必须这样做。因此,除非你们真的认为 sendmail 不值得,否则我会更喜欢关于 sendmail 的建议。

感谢您的时间。

编辑:我在 VMware Player 的 Ubuntu vm 上使用 PHP mail() 函数。

所以有人想看看我的代码。我有点想避免这种情况,因为我尝试了许多不同的可能性。我现在只包含我在文件中的内容:

<?php
                    $myEmail    = "####@gmail.com";
                    $fromAddr   = $_POST['sender-email'];

                    $headers    = "MIME-Version: 1.0\r\n";
                    $headers   .= "Content-type: text/html; charset=iso-8859-1\r\n";
                    $headers   .= "From: $fromAddr\r\n";
                    $headers   .= "'X-Mailer: PHP/'" . phpversion() . "\r\n";
                    $message    = $_POST['message'];

                    $status     = mail($myEmail, $_POST['subj'], $message);

                    if($status) {
                        echo "Your message has been sent, " .$fromAddr. "!";
                    }
                    else {
                        echo "An error occurred while trying to send the mail.";
                    }
                ?>

MIME 类型的东西,以及我稍后添加的内容类型的东西。我试过没有他们。我也尝试过在不使用任何标题的情况下发送邮件,但显然仍然得到了 daemon@ubuntu 的东西。另外,我编辑了我的电子邮件地址以在此处发布代码。好的,我想我也应该添加这个:我正在从另一个页面的 HTML 表单中获取数据。在提交时,我来到这个 php 页面,它获取该数据然后发送电子邮件(这不适合任何专业人士,我这样做只是为了了解更多关于网络的东西)。

4

1 回答 1

2

根据我的经验, Postfix是一个非常易于使用和安装的电子邮件服务器。您需要安装和配置电子邮件服务器,然后才能在本地主机上发送电子邮件。

于 2012-11-19T13:35:34.587 回答