php限制邮件()

时间:2012-09-28 08:46:34

标签: php email

这可能很容易,但我没有看到方法。我手边有一个购物车,用户可以买东西。为此,买方可以将他的电子邮件地址输入到输入表单中。订单与php mail()一起发送给店主和买家。

我正在寻找一种方法来限制邮件只发送两封电子邮件,这是为了防止垃圾邮件。 我看到垃圾邮件发送者可以输入这样的分号字符串的风险:

email@examplecom;email@xxyz.com;hans@jdkdl.com

3 个答案:

答案 0 :(得分:5)

你无法验证使用。

$validemail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($validemail) {
  $headers .= "Reply-to: $validemail\r\n";
}else
{
//redirect.
}

考虑你的实际问题。

<?php
$emails = explode(';',$emailList);
if(count ($emails)<3)
{
if(filter_var_array($emails, FILTER_VALIDATE_EMAIL))
    {
    mail();
    }
  else
    {
    //die    
    }
}
?>

答案 1 :(得分:1)

您可以检查字符串中的电子邮件数量,如下所示:

if(count(explode(';',$emailList))<3)
{
    // send email
}
else
{
    // Oh no, jumbo!
}

此代码将explode您的电子邮件字符串基于;个字符组成一个数组,同时在数组上使用count函数并执行基于的两个方案之一数字。

答案 2 :(得分:0)

这应该只能选择最多两封电子邮件(前两个):

$emailString = "email@examplecom;email@xxyz.com;hans@jdkdl.com";
$emails = explode(";", $emailString);
$emails = array_slice($emails, 0, 2);
$emailString = implode(";", $emails);
var_dump($emailString);

输出:

string(31) "email@examplecom;email@xxyz.com"