PHP使用SMTP发送电子邮件如果BCC空电子邮件无法发送

时间:2017-09-09 07:39:40

标签: php email

我使用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

有什么方法可以解决它或需要进行一些修改吗?

2 个答案:

答案 0 :(得分:0)

如果$bcc变量为空,则连接的字符串包含,,,这在语法上是不正确的。你需要在那里添加一些逻辑以确保不会发生这种情况。

另外,我怀疑你是否正确设置了BCC。它不应该只是你现在拥有的另一个接收者。

答案 1 :(得分:0)

我已经得到了以下解决方案:

$bcc = $dEmailListBCC['EMAIL_ADDRESS'];

if($bcc == "")
{
    $a = "";
}
else
{
    $a = ",".$bcc;
}

首先,检查$bcc变量是否为空。

然后收件人是这样的:

$recipients = $to." ".$a.", ".$cc;