<?php
namespace App\Service;
use SendinBlue\Client\Api\TransactionalEmailsApi;
class MailService
{
private TransactionalEmailsApi $apiInstance;
private string $API_KEY = "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";
public function __construct()
{
$config = \SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', $this->API_KEY);
$config = \SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('partner-key', $this->API_KEY);
$this->apiInstance = new TransactionalEmailsApi(
new \GuzzleHttp\Client(),
$config
);
}
public function sendTransacEmail(string $from, string $from_name, mixed $destinataire, string $content, string $subject, ?string $cc = null): void
{
$params = [];
if (is_array($destinataire)) {
$params['to'] = $destinataire;
} else {
$params['to'] = [['name' => $destinataire, 'email' => $destinataire]];
}
if ($cc != null) {
$params['cc'] = [['name' => $cc, 'email' => $cc]];
}
$params['sender'] = ['name' => $from_name, 'email' => $from];
$params['htmlContent'] = $content;
$params['textContent'] = $content;
$params['subject'] = $subject;
$sendSmtpEmail = new \SendinBlue\Client\Model\SendSmtpEmail($params); // \SendinBlue\Client\Model\SendSmtpEmail | Values to send a transactional email
try {
$result = $this->apiInstance->sendTransacEmail($sendSmtpEmail);
} catch (\Exception) {
}
}
public function send(string $templateId, string $destinataire, mixed $attributes = []): void
{
$params = [];
$params['to'] = [['name' => $destinataire, 'email' => $destinataire]];
$params['templateId'] = $templateId;
if (!empty($attributes)) {
$params['params'] = $attributes;
}
//if(!empty($params_dynamique)){$params['params'] = $params_dynamique;}
$sendEmail = new \SendinBlue\Client\Model\SendSmtpEmail(
$params
);
try {
$result = $this->apiInstance->sendTransacEmail($sendEmail);
} catch (\Exception) {
}
}
}