如有帮助,不胜感激。
$divisions = explode(",", $entry->dept);
foreach($divisions as $division) {
$divs=get_record('induction_emails','id',$division);
$useremail = get_record('user', 'email', $divs->email);
$to = get_record('user', 'id', $useremail->id); }
if (email_to_user($to, $from, $subject, $body)){
redirect('thanks.php'); die;
} else {
} ?>
在给一个人发邮件时效果很好,但是当你试图给数组中的几个人发邮件时,它就不起作用了
这是因为您将电子邮件发送到循环之外,并且在循环的每次迭代中覆盖数据。
你可能想要做的事情:
<?php
$statuses = array();
$divisions = explode(",", $entry->dept);
foreach($divisions as $division) {
$divs=get_record('induction_emails','id',$division);
$useremail = get_record('user', 'email', $divs->email);
$to = get_record('user', 'id', $useremail->id);
$email_status = email_to_user($to, $from, $subject, $body);
$statuses [] = array('email_to' => $to, 'success' => $email_status);
}
foreach($statuses as $status) {
if(!$status['success']) {
//something went wrong with this email, handle it
}
}
redirect('thanks.php'); die;
?>
如果你想给列表中的每个人发邮件,试试这个:
foreach($divisions as $division)
{
$divs=get_record('induction_emails','id',$division);
$useremail = get_record('user', 'email', $divs->email);
$to = get_record('user', 'id', $useremail->id);
email_to_user($to, $from, $subject, $body);
}
也许你想让它更有效并密件整个列表?创建一个新的功能来发送带有密件抄送而不是收件人的电子邮件。提供一个逗号/分号值字符串的所有地址。
foreach($divisions as $division)
{
$divs=get_record('induction_emails','id',$division);
$useremail = get_record('user', 'email', $divs->email);
$bcc .= get_record('user', 'id', $useremail->id).";";
}
send_email_bcc($bcc, $from, $subject, $body);
在循环中连接字符串使用.=
操作符:
$myVariable .= get_record('user', 'id', $useremail->id).";";
我在上面的每个电子邮件地址的末尾都包含了一个分号作为分隔符。