发送PHP电子邮件 - php

我编写了一个脚本,这样如果表单失败,用户会看到错误消息,并且应该向我发送电子邮件。但是,我没有收到电子邮件。我在脚本中看不到任何错误,并且找不到电子邮件(即使在垃圾邮件中也是如此)。可能是什么问题?我相信我们正在Linux服务器上工作,因此默认情况下应该安装Mail Agent,对吗?防火墙可以阻止这些消息吗?

代码:

<?php

if (isset($aErrors) && count($aErrors) > 0 ) {
        print '<ul class="errorlist">';
        foreach ( $aErrors as $error ) {
          print '<li>' . $error . '</li>';
        }
        print '</ul><br />';


$mail_ontv = "[email protected]"; 

$_POST['onderwerp'] = "Geen Twinfield Abonnement";

    // set datum 
    $datum = date("d.m.Y H:i"); 

    // set ip 
    $ip = $_SERVER['REMOTE_ADDR']; 

    $inhoud_mail .= $_SERVER['SCRIPT_URI'] . "\n\n";

    $inhoud_mail .= "Iemand probeerde zich aan te melden, maar had geen Twinfield abonnement!\n";   
    $inhoud_mail .= "Bedrijfsnaam: " . $_SESSION['bedrijfsnaam'] . "\n"; 
    $inhoud_mail .= "Telefoonnummer: " . $_SESSION['telefoonnummer'] . "\n"; 
    $inhoud_mail .= "E-mail adres: " . $_SESSION['email'] . "\n"; 
    $inhoud_mail .= "Telefoonnummer contactpersoon: " . $_SESSION['telefoonnummercontact'] . "\n"; 
    $inhoud_mail .= "E-mail adres contactpersoon: " . $_SESSION['emailcontact'] . "\n"; 
    $inhoud_mail .= "Gewenste gebruikersnaam: " . $_SESSION['gebruikersnaam'] . "\n";
    $inhoud_mail .= "Gekozen abonnement: " . $_SESSION['abonnement'] . "\n\n"; 

    $inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "\n\n"; 

    $headers = "From: " . $_SESSION['bedrijfsnaam'] . " <" . $_SESSION['emailcontact'] . ">";

    $headers = stripslashes($headers);
    $headers = str_replace("\n", "", $headers); // Verwijder \n 
    $headers = str_replace("\r", "", $headers); // Verwijder \r 
    $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes 

    $_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n 
    $_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r 
    $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes 

    mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);                                      
}

?>

多谢你们!

参考方案

除了Mac B的建议,还有一些其他想法供您参考:

1)那里有许多PHP库,这些库将为您发送电子邮件。它们可以与本地或远程SMTP服务器一起使用。例如,http://swiftmailer.org/。

2)目前,大多数电子邮件提供商(Gmail,Yahoo等)都会将垃圾邮件阻止仅来自您本地计算机的电子邮件。我建议使用便宜的第三方SMTP服务发送您的电子邮件-这将有助于提高可靠性。我多年来一直在使用的一种叫做CritSend(critsend.com)。还有很多。

PHP JQuery复选框 - php

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…

如何从php中获取datatables jQuery插件的json数据 - php

我是PHP的新手,正在尝试使用Datatables jQuery插件。我知道我必须从.php文件中获取数据,然后在数据表中使用它,但是我似乎无法通过ajax将其传递给数据表。我设法从数据库中获取数据,并对其进行json编码,但是后来我不知道如何在我的index.php文件中调用它,并在其中显示它。我究竟做错了什么?这是我的代码:HTML(已编辑): <…

PHP-正则表达式删除引号并添加大括号? - php

好吧,我不愿承认这一点,但是我对REGEX感到很困难,我永远找不到关于如何设置表达式的不错的教程。所以说我有这样的事情context['something'] 我想将所有事件更改为context[something] 那我有' . $var . ' 我想将所有事件更改为{var} 这是当前的概念,但是我在正则表达式部分…

PHP:将元素ID作为哈希添加到Facebook共享链接 - php

在this page上,我有一堆显示为精美框的mp3文件。每个框都有一个Facebook分享按钮。我想将每个框ID((mp3jWrap_0, mp3jWrap_1等)作为哈希添加到其Facebook共享链接,以便每次从Facebook访问共享项目时,URL都包含该项目的哈希。为此,我编写了代码:<?php $actual_link = (isset($…

使用jQuery将值增加到attr - php

我想增加i的值。 “ for”循环不起作用。$("a[href$='.xls']").appendTo(".xl1").attr('id','xl'+i); 我搜索所有excel文件,并将它们放在容器中并增加其id的值。谢谢吉恩 参考方案 $("a[…