81 lines
2.3 KiB
PHP
81 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Helpers;
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
use App\Controllers\BaseController;
|
|
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
use PHPMailer\PHPMailer\SMTP;
|
|
use PHPMailer\PHPMailer\Exception;
|
|
|
|
use App\Models\JobModel;
|
|
|
|
|
|
class MailHelper
|
|
{
|
|
public static function send_email($params)
|
|
{
|
|
|
|
// print_r($params);die;
|
|
$emaill = $params['mail'];
|
|
$subject = $params['subject'];
|
|
$message = $params['message'];
|
|
if (isset($params['bcc'])) {
|
|
$bcc = $params['bcc'];
|
|
}else{
|
|
$bcc= '';
|
|
}
|
|
try {
|
|
|
|
$email = \Config\Services::email();
|
|
$email->setMailType('html');
|
|
$email->setFrom('bbone@venbait.in', 'Nhance');
|
|
|
|
$email->setTo($emaill);
|
|
|
|
if (!empty($bcc)) {
|
|
// Convert the comma-separated string into an array
|
|
$bccList = explode(',', $bcc);
|
|
// Trim whitespace from each email ID
|
|
$bccList = array_map('trim', $bccList);
|
|
// Set BCC recipients
|
|
$email->setBCC($bccList);
|
|
}
|
|
|
|
$email->setSubject($subject);
|
|
|
|
$email->setMessage($message);
|
|
|
|
if ($email->send()) {
|
|
return json_encode(['status' => 'success','code' => 200, 'message'=>'Email Sent Successfully...','data' => $emaill,],200);
|
|
} else {
|
|
return json_encode(['status' => 'failed','code' => 404,'message'=>'Email Sent Failed...','data' => $emaill ],404);
|
|
}
|
|
|
|
} catch (Exception $e) {
|
|
return json_encode(['status' => 'failed','code' => 500,'data' => $emaill],500);
|
|
}
|
|
}
|
|
|
|
public static function bulk_mail(array $mails = [])
|
|
{
|
|
// print_r();die;
|
|
$model = new JobModel();
|
|
$start = microtime(true);
|
|
$runtime= 0;
|
|
try {
|
|
foreach ( $mails as $index=>$mail) {
|
|
$runtime = microtime(true) - $start;
|
|
$send_mail = self::send_email($mail);
|
|
}
|
|
|
|
return json_encode(['status' => 'success','code' => 200, 'message'=>'Email Sent Successfully...'],200);
|
|
|
|
} catch (\Throwable $th) {
|
|
return json_encode(['status' => 'failed','code' => 500],500);
|
|
}
|
|
}
|
|
|
|
}
|
|
?>
|