我在使用PHPMailer发送多个以逗号符号分隔的电子邮件时遇到问题。 。我正在使用PHP 7.
我的mysql数据库中的这些数据包含以逗号(,)分隔的单个用户帐户中的多个电子邮件地址。
我已经按照这个问题here的答案,但它不起作用。电子邮件只能发送到john@mail.com。 billy@mail.com没有收到任何邮件。
我尝试回显var_dump(maildbs);
输出显示没有昏迷。
john@mail.combilly@mail.com
这是我的PHP代码。 。
sendmail.php
<?php
$connect = mysqli_connect("", "", "", "");
global $connect;
if(isset($_POST['Submit'])){
$staffname = $_POST['staffname'];
$sql = "SELECT * FROM table WHERE staff_name ='$staffname'";
$get = mysqli_query($connect,$sql);
if($get && mysqli_num_rows($get) > 0 )
{
while($row = mysqli_fetch_assoc($get))
{
$maildbs = explode(',',$row["email_address"]);
foreach($maildbs as $maildb){
date_default_timezone_set('Etc/UTC');
require_once '../PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
$mail->Host = "host";
$mail->Port = 25;
$mail->SMTPAuth = false;
$mail->setFrom('sender@mail.com', 'Sender');
$mail->addAddress('mail@mail.com','receipent');
$mail->addCC($maildb);
$mail->Subject = 'PHPMailer SMTP without auth test';
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
$mail->AltBody = 'This is a plain-text message body';
$mail->Body = 'body content';
$mail->addAttachment('images/phpmailer_mini.png');
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
}
}
mysqli_free_result($get);
}
}
?>
<!DOCTYPE html>
<html><title>Test Email</title></head>
<body>
<table>
<form action="sendmail.php" method="POST">
<tr>
<td>Staff Name :</td>
<td><input type="text" name="staffname" value="" ></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="Submit" value="send email"></td>
</tr>
</form>
</table>
</body>
</html>
感谢有人可以提供帮助。
答案 0 :(得分:0)
使用爆炸php功能
$email = explode(',', $toEmail);
for ($i = 0; $i < count($email); $i++) {
$mail->addAddress($email[$i], 'recipient ');
}
if ($ccEmail != null) {
$emailCC = explode(',', $ccEmail);
for ($i = 0; $i < count($emailCC); $i++) {
$mail->addCC($emailCC[$i]);
}
}
if ($ccBCC != null) {
$emailBCC = explode(',', $ccBCC);
for ($i = 0; $i < count($emailBCC); $i++) {
$mail->addBCC($emailBCC[$i]);
}
}