为PHP邮件脚本设置时间或发送限制
我有一个简单的php注册表单,它捕获了一个名称和电子邮件地址。注册后,我有一封确认电子邮件发送给注册人,一封发送给管理员 我遇到了一个问题,用户只注册了一次,但一些问题导致电子邮件被发送50多次给注册人和管理员。这只发生过几次,但我正在努力阻止它在未来发生 我正在考虑运行脚本的时间限制,但是想知道处理这个问题的最佳方法。下面是脚本邮件部分的一个片段 2个注释,以备使用:为PHP邮件脚本设置时间或发送限制,php,email,Php,Email,我有一个简单的php注册表单,它捕获了一个名称和电子邮件地址。注册后,我有一封确认电子邮件发送给注册人,一封发送给管理员 我遇到了一个问题,用户只注册了一次,但一些问题导致电子邮件被发送50多次给注册人和管理员。这只发生过几次,但我正在努力阻止它在未来发生 我正在考虑运行脚本的时间限制,但是想知道处理这个问题的最佳方法。下面是脚本邮件部分的一个片段 2个注释,以备使用: 我用的是梨邮递员 我的邮件是通过邮枪发送的 $headers=array('From'=>$From, '至'=>$至, “密
$headers=array('From'=>$From,
'至'=>$至,
“密件抄送”=>密件抄送美元,
'回复'=>$电子邮件,
“主题”=>$Subject,
“MIME版本”=>1,
“内容类型”=>“文本/html;字符集=iso-8859-1”);
$headers\u admin\u notification=array('From'=>$From\u admin\u notification,
'至'=>$至管理员通知,
'Subject'=>$Subject\u admin\u通知,
“MIME版本”=>1,
“内容类型”=>“文本/html;字符集=iso-8859-1”);
//配置文件中包含SMTP身份验证的凭据
$smtp=Mail::工厂('smtp',阵列('host'=>'ssl://smtp.mailgun.org',
“auth”=>正确,
“端口”=>465,
“用户名”=>“XXXXX”,
“密码”=>“XXXXX”);
$mail=$smtp->send($to、$headers、$body);
$mail\u admin\u notification=$smtp->send($to\u admin\u notification、$headers\u admin\u notification、$body\u admin\u notification);
if(PEAR::isError($mail)| PEAR::isError($mail\u admin\u notification)){
echo(“”$mail->getMessage()””;
echo(“”$mail\u admin\u notification->getMessage()””;
}
否则{
标题(“位置:LINK-TO-MY-CONFIRMATION-PAGE?fname=$fname&session=$readable_date_和_time”);
}
谢谢
但是一些问题导致电子邮件被发送50多次给注册人和管理员
最好是找到并修复这个bug,而不是在这个bug从未被故意解决的地方进行工作。。。可能是一个机器人利用你的脚本。。。如果是这样,您可以使用会话,在该会话中,如果已完成所需的工作,则会检查标志performed@GetSet谢谢你。我认为增加会议是另一种选择。我找不到发生这种情况的任何原因,但我也联系了我的服务器提供商,以防这是出于某种原因。但一些问题导致电子邮件被发送50多次给注册人和管理员
最好是找到并修复这个bug,而不是在不知情的情况下解决这个bug。。。可能是一个机器人利用你的脚本。。。如果是这样,您可以使用会话,在该会话中,如果已完成所需的工作,则会检查标志performed@GetSet谢谢你。我认为增加会议是另一种选择。我找不到发生这种情况的任何原因,但我也已经联系了我的服务器提供商,以防发生这种情况。
$headers = array ('From' => $from,
'To' => $to,
'Bcc' => $bcc,
'Reply-to' => $email,
'Subject' => $subject,
'MIME-Version' => 1,
'Content-type' => 'text/html;charset=iso-8859-1');
$headers_admin_notification = array ('From' => $from_admin_notification,
'To' => $to_admin_notification,
'Subject' => $subject_admin_notification,
'MIME-Version' => 1,
'Content-type' => 'text/html;charset=iso-8859-1');
// credentials for SMTP Authentication included from config file
$smtp = Mail::factory('smtp', array ('host' => 'ssl://smtp.mailgun.org',
'auth' => true,
'port' => 465,
'username' => 'XXXXX',
'password' => 'XXXXX'));
$mail = $smtp->send($to, $headers, $body);
$mail_admin_notification = $smtp->send($to_admin_notification, $headers_admin_notification, $body_admin_notification);
if (PEAR::isError($mail) || PEAR::isError($mail_admin_notification)) {
echo("<p>" . $mail->getMessage() . "</p>");
echo("<p>" . $mail_admin_notification->getMessage() . "</p>");
}
else {
header("Location: LINK-TO-MY-CONFIRMATION-PAGE?fname=$fname&session=$readable_date_and_time");
}