使用LAMP在PHP上发送邮件

时间:2012-11-19 10:26:57

标签: php email smtp lamp

我已经尝试了一段时间来使用PHP发送邮件,而我似乎无法让它发挥作用。

我查看了教程,他们看起来很简单。然而,它似乎实际上需要比所提到的更多的工作。通过研究(简而言之),似乎而不是" From:"标题实际上有我给它的地址,似乎... sendmail用守护进程@ubuntu取代它或其他东西?好吧,即使我没有包含标题,我仍然会从守护程序@ ubuntu中获取垃圾邮件(我在vm上运行ubuntu,并将邮件发送到我的gmail帐户)。我想这可以解释为什么当我尝试发送邮件时我不断得到错误,说明" MAIL FROM命令"中有错误。

所以在我开始搞乱使用sendmail之前,这是守护进程@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类型的东西,以及我稍后添加的Content-type的东西。没有他们我试过这个。我也尝试过不使用任何标题发送邮件,但显然仍然可以获得守护进程@ ubuntu。此外,我编辑了我的电子邮件地址以在此处发布代码。好吧我想我也应该添加它:我从另一个页面获取HTML表单中的数据。在提交时,我来到这个php页面,它抓取那些数据,然后发送电子邮件(这不是任何专业人士,我只是这样做,以了解更多关于网络的东西)。

2 个答案:

答案 0 :(得分:2)

我认为此链接可以帮助您 http://www.thewireframecommunity.com/node/39 此链接可帮助您安装ssmtp以使用php邮件功能发送电子邮件

答案 1 :(得分:2)

根据我的经验,

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