【发布时间】:2015-03-25 13:17:24
【问题描述】:
我有一个邮件脚本可以向特定用户发送电子邮件。我从 mysql 数据库中收到电子邮件。
将电子邮件发送给一个人时,电子邮件设置工作正常。当只使用 to: 而没有密件抄送时:
但是当我插入带有 bbc: 的行时,我得到一个错误:
$headers .= "Bcc: ". implode(", ", $recipients) ."\r\n"; <-- Error happens here
我已尝试删除 implode 中的空间并检查所有电子邮件。它们都是有效的,用逗号分隔
我还尝试插入:error_get_last() 并且错误不返回任何贵重物品。数组为空。所以我真的看不出错误应该在哪里。
我的代码是:
$con=mysqli_connect("","","","");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT email FROM users WHERE receive_email = 1")
or die(mysqli_error());
/* Details for emails */
$name = "domain.com";
$email = "info@domain.com" ;
/* End of details */
$recipients = array();
while($row = mysqli_fetch_array($result)) {
$recipients[] = $row["email"];
}
$to .= "info@domain.com";
$subject .= "Domain.com account notification";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "From: " . $name . "\r\n";
$headers .= "Reply-To: ". $email . "\r\n";
$headers .= "Bcc: ". implode(", ", $recipients) ."\r\n"; <-- Error happens here
$headers .= "X-Mailer: PHP/" . phpversion();
$message .= '
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Domain.com</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body style="margin: 0; padding: 0;">
</body>
</html>
';
$send_email = mail($to, $subject, $message, $headers);
if(!$send_email) {
echo "Error<br>";
echo implode(', ', $recipients);
} else {
echo "Success<br>";
echo implode(', ', $recipients);
}
【问题讨论】:
-
$headers .= "密件抄送:"。内爆(", ", $recipients) ."\r\n";
-
你得到什么错误?
-
您检查过
$recipients变量,是否每个元素都包含有效的电子邮件地址? -
您是否尝试删除 implode 中的空间?内爆(", ", $recipients) => 内爆(",", $recipients)
-
我已经检查了两个 $recipents 变量。所有电子邮件均有效且后跟逗号和空格。还试图删除空间。使用密件抄送时仍然出错