这可能很容易,但我没有看到方法。我手边有一个购物车,用户可以买东西。为此,买方可以将他的电子邮件地址输入到输入表单中。订单与php mail()
一起发送给店主和买家。
我正在寻找一种方法来限制邮件只发送两封电子邮件,这是为了防止垃圾邮件。 我看到垃圾邮件发送者可以输入这样的分号字符串的风险:
email@examplecom;email@xxyz.com;hans@jdkdl.com
答案 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"