首页 > 解决方案 > 为 PHP 邮件脚本设置时间或发送限制

问题描述

我有一个简单的 php 注册表单,可以捕获姓名和电子邮件地址。注册后,我设置了一封确认电子邮件发送给注册者和一封发送给管理员的确认电子邮件。

我遇到了用户只注册一次的问题,但某些问题导致电子邮件向注册人和管理员发送了 50 多次。它只发生过几次,但我正在努力防止它在未来发生。

我正在考虑运行脚本的时间限制,但想知道处理这个问题的最佳方法。下面是脚本邮件部分的片段。

2个注意事项,以防它们有用:

  1. 我正在使用 PEAR Mailer
  2. 我的邮件正在通过 MailGun 发送
$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");
}

谢谢!

标签: phpemail

解决方案


推荐阅读