FIX_ZEPTO_MAIL_BCC_CC_NOT_SEND_ISSUE_SRINIVAS

This commit is contained in:
Srinivas-Saravanan 2025-01-17 18:15:46 +05:30
parent 7f7dee16b0
commit a2ccebf83e

View File

@ -194,6 +194,11 @@ class MailHelper
} else { } else {
$bcc = ''; $bcc = '';
} }
if(isset($params['cc'])){
$cc = $params['cc'];
}else{
$cc = '';
}
$from_address = getenv('email.fromEmail'); $from_address = getenv('email.fromEmail');
@ -255,7 +260,7 @@ class MailHelper
} }
$apiResponse = json_decode($response, true); $apiResponse = json_decode($response, true);
log_message('error',$apiResponse);
if ($httpCode === 200) { if ($httpCode === 200) {
return json_encode(['status' => 'success', 'code' => 200, 'message' => 'Email Sent Successfully...', 'data' => $emaill], 200); return json_encode(['status' => 'success', 'code' => 200, 'message' => 'Email Sent Successfully...', 'data' => $emaill], 200);
} else { } else {
@ -289,116 +294,141 @@ class MailHelper
} }
public static function send_email($params) public static function send_email($params)
{ {
$myLogger = \Config\Services::mylogger(); $myLogger = \Config\Services::mylogger();
$emaill = $params['mail'];
$subject = $params['subject'];
$message = $params['message'];
$attachments = isset($params['attachments']) ? $params['attachments'] : [];
$common = isset($params['common']) ? $params['common'] : '';
$bcc = isset($params['bcc']) ? $params['bcc'] : '';
$cc = isset($params['cc']) ? $params['cc'] : '';
$from_address = getenv('email.fromEmail');
try {
$curl = curl_init();
$emaill = $params['mail']; $postData = [
$subject = $params['subject']; 'from' => [
$message = $params['message']; 'address' => $from_address
$attachments = isset($params['attachments']) ? $params['attachments'] : []; ],
$common = isset($params['common']) ? $params['common'] : ''; 'to' => [
[
$from_address = getenv('email.fromEmail'); 'email_address' => [
try { 'address' => $emaill
$curl = curl_init();
$postData = [
'from' => [
'address' => $from_address
],
'to' => [
[
'email_address' => [
'address' => $emaill
]
] ]
], ]
'subject' => $subject, ],
'htmlbody' => $message 'subject' => $subject,
]; 'htmlbody' => $message
];
// Handle attachments // Add CC recipients if provided
if (!empty($attachments)) { if (!empty($cc)) {
$postData['attachments'] = []; $postData['cc'] = [];
foreach ($attachments as $attachment) { // Handle both string and array inputs for CC
if (isset($attachment['filePath']) && file_exists($attachment['filePath'])) { $ccEmails = is_array($cc) ? $cc : [$cc];
// Determine MIME type dynamically foreach ($ccEmails as $ccEmail) {
$fileMimeType = mime_content_type($attachment['filePath']); $postData['cc'][] = [
'email_address' => [
$postData['attachments'][] = [ 'address' => $ccEmail
'content' => base64_encode(file_get_contents($attachment['filePath'])), ]
'name' => $attachment['fileName'], ];
'mime_type' => $fileMimeType, // Add mime_type field }
]; }
}
// Add BCC recipients if provided
if (!empty($bcc)) {
$postData['bcc'] = [];
// Handle both string and array inputs for BCC
$bccEmails = is_array($bcc) ? $bcc : [$bcc];
foreach ($bccEmails as $bccEmail) {
$postData['bcc'][] = [
'email_address' => [
'address' => $bccEmail
]
];
}
}
// Handle attachments
if (!empty($attachments)) {
$postData['attachments'] = [];
foreach ($attachments as $attachment) {
if (isset($attachment['filePath']) && file_exists($attachment['filePath'])) {
// Determine MIME type dynamically
$fileMimeType = mime_content_type($attachment['filePath']);
$postData['attachments'][] = [
'content' => base64_encode(file_get_contents($attachment['filePath'])),
'name' => $attachment['fileName'],
'mime_type' => $fileMimeType,
];
} }
} }
}
curl_setopt_array($curl, [ curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zeptomail.in/v1.1/email", CURLOPT_URL => "https://api.zeptomail.in/v1.1/email",
CURLOPT_RETURNTRANSFER => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "", CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10, CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30, CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($postData), CURLOPT_POSTFIELDS => json_encode($postData),
CURLOPT_HTTPHEADER => [ CURLOPT_HTTPHEADER => [
"accept: application/json", "accept: application/json",
"authorization: Zoho-enczapikey " . getenv('ZEPTO_API_KEY'), "authorization: Zoho-enczapikey " . getenv('ZEPTO_API_KEY'),
"cache-control: no-cache", "cache-control: no-cache",
"content-type: application/json", "content-type: application/json",
], ],
]); ]);
$mail_result = curl_exec($curl); $mail_result = curl_exec($curl);
$err = curl_error($curl); $err = curl_error($curl);
curl_close($curl); curl_close($curl);
// log_message('error','inside mail helper');
// log_message('error', $response.' error->'.$err);die();
$res['params'] = $params;
$MailDataHelper = new GmailResponseHandler();
$apiResponse = json_decode($mail_result, true);
$res['zepto_api'] = $apiResponse;
if (isset($apiResponse['error'])) {
$response = $res;
$MailDataHelper->receive_and_distribute_param_to_functions($response);
return json_encode([
'status' => 'failed',
'code' => 404,
'message' => 'Email Sent Failed...' . $emaill,
'data' => $res
], 404);
}
// $apiResponse = json_decode($response, true); $res['params'] = $params;
$MailDataHelper = new GmailResponseHandler();
// Check if request_id exists in response (indicates success) $apiResponse = json_decode($mail_result, true);
if (isset($apiResponse['data'])) { $res['zepto_api'] = $apiResponse;
$response = $res;
$MailDataHelper->receive_and_distribute_param_to_functions($response); if (isset($apiResponse['error'])) {
return json_encode([
'status' => 'success',
'code' => 200,
'message' => 'Email Sent Successfully...' . $emaill,
'data' => $res
], 200);
}
} catch (\Exception $e) {
$msg['error'] = $e->getMessage();
$msg['params'] = $params;
$response = $res; $response = $res;
$MailDataHelper->receive_and_distribute_param_to_functions($response); $MailDataHelper->receive_and_distribute_param_to_functions($response);
return json_encode([ return json_encode([
'status' => 'failed', 'status' => 'failed',
'code' => 500, 'code' => 404,
'data' => $msg 'message' => 'Email Sent Failed...' . $emaill,
], 500); 'data' => $res
], 404);
} }
}
if (isset($apiResponse['data'])) {
$response = $res;
$MailDataHelper->receive_and_distribute_param_to_functions($response);
return json_encode([
'status' => 'success',
'code' => 200,
'message' => 'Email Sent Successfully...' . $emaill,
'data' => $res
], 200);
}
} catch (\Exception $e) {
$msg['error'] = $e->getMessage();
$msg['params'] = $params;
$response = $res;
$MailDataHelper->receive_and_distribute_param_to_functions($response);
return json_encode([
'status' => 'failed',
'code' => 500,
'data' => $msg
], 500);
}
}
public static function bulk_mail(array $mails = []) public static function bulk_mail(array $mails = [])
{ {
$model = new JobModel(); $model = new JobModel();