如果使用PHP自动发送电子邮件:
。
$body = "test";
$qDept = oci_parse($c1, "
SELECT
D.DEPARTMENTID,
D.DEPARTMENTNAME,
E.EMAIL_SCHEDULERID_FK,
E.DEPARTMENTID_FK,
E.EMAIL_ADDRESS
FROM
WA_GA_TBL_DEPARTMENTS D,
WA_GA_TBL_EMAILLISTS E
WHERE
D.DEPARTMENTID = E.DEPARTMENTID_FK AND
D.LOCATIONID_FK = 'LC0001'
");
oci_execute($qDept);
while($dDept = oci_fetch_array($qDept))
{
$to = $dDept['EMAIL_ADDRESS'];
$body .= "test test";
}
$host = 'smtp.office365.com';
$port = '587';
$username = 'donotreply@test.com';
$password = 'aw00w?';
$headers = array(
'Port' => $port,
'From' => $from,
'To' => $to,
'Subject' => $subject,
'Content-Type' => 'text/html; charset=UTF-8'
);
$recipients = $to.", ".$bcc;
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($recipients, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
}
您可以在变量$to
如果同一部门和超过1封电子邮件,我希望它像:someone@test.com,someone1 @ test.com
但如果只有1封电子邮件,那么是someone @ test.com。
现在的问题是,如果通过电子邮件发送超过1封电子邮件,它只会发送到第一封电子邮件。
我认为需要使用数组吗?如果是的话,怎么做?
答案 0 :(得分:0)
你必须把
$mail = $smtp->send($recipients, $headers, $body);
在while括号中,
while($dDept = oci_fetch_array($qDept))
{
$to = $dDept['EMAIL_ADDRESS'];
$body .= "test test";
$mail = $smtp->send(yourvar1, yourvar2, yourvar3);
}
因此,它会循环播放尽可能多的电子邮件。