带有多个收件人的PHP邮件表格&不同的内容:有时没有收到

时间:2015-11-23 10:53:00

标签: php forms webforms

我想将在线电子邮件表单发送到两个地址。 每个收件人的邮件内容应该不同。 一封邮件用于进一步处理(带密码),另一封邮件作为个人拷贝(无密码)。

问题:

我创建的网络表单基本上有效,但部分用户报告说他们没有获得个人副本。 我无法重现该错误。(参见更新如下)我现在有一种担忧,即有时它也不会向其他地址发送电子邮件。 我认为它与邮件处理逻辑(process.php)有关...

我怎样才能避免这种奇怪的行为?我犯了编码错误吗?有任何修复方法吗?

非常感谢你的帮助!

以下是示例代码:

<?php
$to =  $_POST['email'];
$to2 =  'mail@example.com';
$from = $_POST['email'];
$subject = 'Webform for' . $_POST['firstname'] . ' ' . $_POST['lastname'];
$email = $_POST['email'];
$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname'];
$password = $_POST['password'];
$comment = $_POST['comment'];

$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=utf-8";
$headers[] = "From: {$email}";
$headers[] = "X-Mailer: PHP/".phpversion();

$message1 = "
Hello $firstname $lastname, \n
here is your personal copy of the web form: \n
Name:       $firstname $lastname
Comment:    $comment \n
Bye, Admin";

$message2 = "
Name:       $firstname $lastname
Password:   $password
Comment:    $comment";

$success = mail($to, $subject, $message1,implode("\r\n",$headers), '-fmail@example.com');       // Personal copy
$success = mail($to2, $subject, $message2,implode("\r\n",$headers), '-fmail@example.com');  // Further processing

if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=form.php#success\">";
}
?>

更新 [2015年11月24日]:我复制了一次错误(很少发生)。 丢失的电子邮件不会被过滤为垃圾邮件,也不会出现在其他任何地方。 尚未找到解决方案。

0 个答案:

没有答案