我使用SMTP发送电子邮件。
transition: left .3s ease
我试图运行上面的代码,只有$from = "Info <donotreply@test.com>";
$subject = "Calibration will be expiring!";
$body = 'Hello';
$to = "david@test.com, dono@test.com";
$cc = "rena@test.com";
$bcc = ""; //sometimes BCC can be empty
$host = 'smtp.test.com';
$port = '587';
$username = 'donotreply@test.com';
$password = 'dontreply?';
$headers = array(
'Port' => $port,
'From' => $from,
'To' => $to,
'Subject' => $subject,
'Content-Type' => 'text/html; charset=UTF-8',
'Cc' => $cc
);
$recipients = $to.", ".$bcc.", ".$cc;
$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>");
}
不为空时才能运行。
$bcc
为空时出错
$bcc
有什么方法可以解决它或需要进行一些修改吗?
答案 0 :(得分:0)
如果$bcc
变量为空,则连接的字符串包含,,
,这在语法上是不正确的。你需要在那里添加一些逻辑以确保不会发生这种情况。
另外,我怀疑你是否正确设置了BCC。它不应该只是你现在拥有的另一个接收者。
答案 1 :(得分:0)
我已经得到了以下解决方案:
$bcc = $dEmailListBCC['EMAIL_ADDRESS'];
if($bcc == "")
{
$a = "";
}
else
{
$a = ",".$bcc;
}
首先,检查$bcc
变量是否为空。
然后收件人是这样的:
$recipients = $to." ".$a.", ".$cc;