0

我正在尝试从 sendgrid API 向多个用户发送邮件。

我必须向最终用户提供选择框选项,以便从可用列表中选择他们所需的电子邮件。

HTML 页面如下所示:

<input type="checkbox" name="options[]" value="<? echo $email1 ?>"/> email id1<br/>
<input type="checkbox" name="options[]" value="<? echo $email2 ?>"/> Email id2<br/>
<input type="checkbox" name="options[]" value="<? echo $email3 ?>"/> email id3<br/> 

PHP代码部分是:

$checked = $_POST['options'];
for($i=0; $i < count($checked); $i++){


$options[] = $_POST['options[]'] ? $_POST['options[]']  : '';
    $toList = array($_POST['email_to'],$checked[$i]); }

当我选择并将邮件发送到超过 2 个复选框时,只有 2 个邮件 ID 正在接收邮件。

这意味着一个是“$toList”中的默认电子邮件 ID,第二个来自“$checked[$i]”。

如果我取消选中所有复选框以仅发送到默认电子邮件 ID,则会收到此错误:“可捕获的致命错误:传递给 SendGrid\Mail::setTos() 的参数 1 必须是一个数组,给定 null”。

我的代码有什么错误。或者有没有更好的方法来满足我的要求。

提前致谢

4

1 回答 1

0

这个

$options[] = isset($_POST['options[]']) && $_POST['options[]']  ? "1" : "0";

是不正确的。将[]被剥离表单名称并变成一个数组。您用于$_POST['options'][$i]访问各个元素。

于 2013-06-05T16:34:00.290 回答