I have mail send function in laravel
public static function Compose($to,$cc,$bcc,$subject,$body)
{
// return $to;
try
{
$data = [
'body' => $body
];
if(env('APP_ENV') == "local")
{
$email["subject"] = $subject;
$email["to"] = $to;
$email["cc"] = $cc;
$email["bcc"] = $bcc;
Mail::send('email.composeMail', $data, function ($message) use ($email) {
$message
->subject($email["subject"])
->to($email["to"]);
->cc($email["cc"]);
->bcc($email["bcc"]);
});
}
else
{
$email["subject"] = $subject;
$email["to"] = $to;
$email["cc"] = $cc;
$email["bcc"] = $bcc;
Mail::send('email.composeMail', $data, function ($message) use ($email) {
$message
->subject($email["subject"])
->to($email["to"]);
->cc($email["cc"]);
->bcc($email["bcc"]);
});
}
}
catch (\Exception $e)
{
Log::critical('Critical error occurred upon processing the transaction in Email.php -> Email class -> RevertPropertyToInbox method');
throw new CustomErrorHandler($e->getMessage(),Constant::LogLevelCritical);
}
}
In many cases CC and BCC is Null. But mails aren't sent and I am getting error message
Here , I want to use code as it is without checking if CC or BCC is null, Is there any thing missed by me so that I can achieve what I am planning to .
Those methods can all be called with an array instead of a plain string (docs). In that case, you should be able to just leave the array empty. Try this:
$message
->subject($email["subject"])
->to($email["to"]);
->cc($email["cc"] ?: []);
->bcc($email["bcc"] ?: []);
you cannot send email if the email address is blank, it will always throw error
instead you need to check and then send email accordingly
try this
if($email["cc"] =='' && $email["bcc"] == ''){
$message
->subject($email["subject"])
->to($email["to"]);
}
elseif($email["cc"] ==''){
$message
->subject($email["subject"])
->to($email["to"])
->bcc($email["bcc"]);
}
else{
$message
->subject($email["subject"])
->to($email["to"])
->cc($email["cc"]);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With