【问题标题】:PHP form email submission not working every timePHP表单电子邮件提交并非每次都有效
【发布时间】:2016-05-30 20:46:06
【问题描述】:

编辑:这与可能的重复不同,因为他们从未收到电子邮件。我的随机发送。

下面的代码已经运行了将近一年。然而,在过去一周左右,它只在需要时发送。我的家伙在多个设备上的多个位置使用它,并且正在发生同样的事情。

有一个 html 表单可以提交到这个 php 代码,然后它会通过电子邮件发送给我并显示一个 html 确认页面。他们收到确认页面,但我没有收到电子邮件。当天晚些时候,如果我回击,然后再次提交,我确实会收到电子邮件。

我想不通。关于发生了什么的任何建议?我正在考虑创建一个它首先提交的 SQL 数据库,这样我就可以查看他们输入的内容,以防我没有收到电子邮件。

谢谢!

<?php
if(isset($_POST['submit'])) {
$to = "email_removed@gmail.com";
$subject = "Daily Inventory Submission";

// data the visitor provided
$location_field = filter_var($_POST['location'], FILTER_SANITIZE_STRING);
$yourname_field = filter_var($_POST['yourname'], FILTER_SANITIZE_STRING);
$biscuitsfull_field = filter_var($_POST['biscuits_full'], FILTER_SANITIZE_STRING);
$biscuitspartial_field = filter_var($_POST['biscuits_partial'], FILTER_SANITIZE_STRING);
$biscuitsemergency_field = filter_var($_POST['biscuits_emergency'], FILTER_SANITIZE_STRING);
$gravyfull_field = filter_var($_POST['gravy_full'], FILTER_SANITIZE_STRING);
$gravypartial_field = filter_var($_POST['gravy_partial'], FILTER_SANITIZE_STRING);
$eggsfull_field = filter_var($_POST['eggs_fullflats'], FILTER_SANITIZE_STRING);
$eggspartial_field = filter_var($_POST['eggs_partial'], FILTER_SANITIZE_STRING);
$cheese_field = filter_var($_POST['cheese'], FILTER_SANITIZE_STRING);
$sausagefull_field = filter_var($_POST['sausage_full'], FILTER_SANITIZE_STRING);
$sausagepartial_field = filter_var($_POST['sausage_partial'], FILTER_SANITIZE_STRING);
$jalapenos_field = filter_var($_POST['jalapenos'], FILTER_SANITIZE_STRING);
$sprayoil_field = filter_var($_POST['spray_oil_cans'], FILTER_SANITIZE_STRING);
$pouroil_field = filter_var($_POST['pour_oil'], FILTER_SANITIZE_STRING);
$tofu_field = filter_var($_POST['tofu'], FILTER_SANITIZE_STRING);
$almondmilk_field = filter_var($_POST['almond_milk'], FILTER_SANITIZE_STRING);
$veganbutter_field = filter_var($_POST['vegan_butter'], FILTER_SANITIZE_STRING);
$realbutter_field = filter_var($_POST['real_butter'], FILTER_SANITIZE_STRING);
$bacon_field = filter_var($_POST['bacon'], FILTER_SANITIZE_STRING);
$togo_field = filter_var($_POST['to_go'], FILTER_SANITIZE_STRING);
$hereboats_field = filter_var($_POST['here_boats'], FILTER_SANITIZE_STRING);
$flour_field = filter_var($_POST['flour'], FILTER_SANITIZE_STRING);
$potatoes_field = filter_var($_POST['potatoes'], FILTER_SANITIZE_STRING);
$waters_field = filter_var($_POST['waters'], FILTER_SANITIZE_STRING);
$oj_field = filter_var($_POST['orange_juice'], FILTER_SANITIZE_STRING);
$topo_field = filter_var($_POST['topo'], FILTER_SANITIZE_STRING);
$cokes_field = filter_var($_POST['cokes'], FILTER_SANITIZE_STRING);
$comment = filter_var($_POST['comment'], FILTER_SANITIZE_STRING);




//constructing the message
$body = " 
Location: $location_field\n 
Employee: $yourname_field\n\n 

Biscuits_FULL:      $biscuitsfull_field\n
Biscuits_Partial:   $biscuitspartial_field\n
Biscuits_Emergency: $biscuitsemergency_field\n\n

Gravy_Full:    $gravyfull_field\n
Gravy_Partial: $gravypartial_field\n\n

Eggs_Full:    $eggsfull_field\n
Eggs_Partial: $eggspartial_field\n\n

Cheese:  $cheese_field\n\n

Sausage_Full:    $sausagefull_field\n
Sausage_Partial: $sausagepartial_field\n\n

Jalapenos:  $jalapenos_field\n\n

Spray Oil Cans:  $sprayoil_field\n
Pour Oil :       $pouroil_field\n\n

Tofu:         $tofu_field\n
Almond Milk:  $almondmilk_field\n
Vegan Butter: $veganbutter_field\n\n

Real Butter: $realbutter_field\n\n

Bacon: $bacon_field\n\n

To Go Boxes:  $togo_field\n
Here Boats:   $hereboats_field\n\n

Flour:    $flour_field\n
Potatoes: $potatoes_field\n\n

Waters:        $waters_field\n
Daiya:         $oj_field\n
Topos:         $topo_field\n
Cokes:         $cokes_field\n\n






Message:\n\n $comment";

mail($to, $subject, $body);

// redirect to confirmation
header('Location: confirmation.htm');
} else {
echo "Error, not sent";}
?>

【问题讨论】:

  • 你确定邮件服务器没有长时间排队发送的邮件吗?
  • 我从来没有收到过它们。两家店今天2点都试了,没收到。我一直在测试它,我得到了那些。如果它被排队,我不会得到他们提交的除了我的吗?
  • 你检查你的死信文件夹了吗?
  • 您有服务器的根访问权限吗?你能检查 /var/log/mail.log 或 /var/log/mail.err 的内容吗?您发送的邮件不仅会消失(大多数情况下)。您可能会发现关于这些文件发生了什么的一些线索。

标签: php html forms email


【解决方案1】:

我建议使用专门为此目的设计的类,而不是使用原始邮件功能,查找https://github.com/PHPMailer/PHPMailer

【讨论】:

  • 链接到其他答案并不能改善您的答案。它也不会使您的答案有用,因为您没有证明该答案中列出的任何项目实际上都是 OP 的问题。
  • @JohnConde 这与可能的重复不同,因为他们从未收到电子邮件。我的随机发送。
  • @assemblyhelpneededplease 是否没有通过,或者只是一些故障排除步骤相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 2013-09-16
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
相关资源
最近更新 更多