阻止用户发送多封电子邮件

时间:2013-08-23 07:45:40

标签: php

是否有可靠的方法阻止用户一次发送多封电子邮件?

我有一个基本的html表单,允许用户输入电子邮件地址:

email1@address1.com

此工作正常,电子邮件已发送。但是,用户也可以这样做:

email1@address1.com, email2@address2.com, email3@address3.com

按下提交按钮后,我的代码会发送所有3封电子邮件。我如何阻止这种情况发生。我想限制用户,并且只允许他/她每次提交发送1封电子邮件。

我目前的代码是:

<?php

    $email_from = "oshirowanen@localhost.com";
    $email_to = $_POST["referred_email"];
    $email_subject = 'test subject here';
    $email_message = $_POST["referred_message"];

    // create email headers
    $headers = 'From: '. $email_from ."\r\n".
    'Reply-To: '. $email_from ."\r\n" .
    'X-Mailer: PHP/' . phpversion();

    $result = mail($email_to, $email_subject, $email_message, $headers); 

    if ($result) echo 'Mail accepted for delivery ';
    if (!$result) echo 'Test unsuccessful... ';

?>

2 个答案:

答案 0 :(得分:3)

在发送邮件之前,请检查$email_to是否为有效的电子邮件地址。最简单的方法是使用filter_var()

if (!filter_var($email_to, FILTER_VALIDATE_EMAIL)) {
    // handle error
}

答案 1 :(得分:0)

使用正则表达式评估输入字段的内容:http://www.regular-expressions.info/email.html

或者只需将新电子邮件类型用于输入字段:http://www.w3schools.com/html/html5_form_input_types.asp