2017-09-09 21 views
-2

PHPを使用してSMTPを送信しています。PHP SMTPを使用して電子メールを送信するBCCが空の場合電子メールを送信できない

$from = "Info <[email protected]>"; 
$subject = "Calibration will be expiring!"; 

$body = 'Hello'; 

$to = "[email protected], [email protected]"; 
$cc = "[email protected]"; 
$bcc = ""; //sometimes BCC can be empty 

$host = 'smtp.test.com'; 
$port = '587'; 
$username = '[email protected]'; 
$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

Failed to add recipient: @localhost [SMTP: Invalid response code received from server (code: 501, response: 5.1.3 Invalid address [HKXPR02MB0695.apcprd02.prod.outlook.com])] 

空でそれを修正するか、そこにいくつかの変更を必要とするためにどのようにどのような方法がありますか?

+0

'$受取人= $に "" $ BCC "" $のCC;'なぜあなたはこの行を持っていますか。。。。? BCCもヘッダーで送信する必要があります。受信者には$を付けるだけです。 –

+0

@NormanMだから私は何をする必要がありますか? –

答えて

0

変数が空の場合、連結文字列には構文的に正しくない,,が含まれています。これが起こっていないことを確認するために、ロジックを追加する必要があります。

また、BCCを正しく設定してもらえません。今のような別の受信者であってはなりません。

+0

こんにちは@Marcin、あなたの答えをありがとう。私はそれをする方法を教えてください? –

0

私は解決策以下の持っている:

$bcc = $dEmailListBCC['EMAIL_ADDRESS']; 

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

まず、$bcc変数が空であるかどうか確認してください。

、その後、受信者がこのようなことする:

$recipients = $to." ".$a.", ".$cc; 
関連する問題