'conditions' => 'date_delete IS NULL' | 'conditions' => 'date_delete IS NULL' | ||||
]); | ]); | ||||
$mail = Yii::$app->mailer->compose( | |||||
$mail = Yii::$app->mailerService->getMailer()->compose( | |||||
[ | [ | ||||
'html' => '@common/mail/cronOrdersSummary-html', | 'html' => '@common/mail/cronOrdersSummary-html', | ||||
'text' => '@common/mail/cronOrdersSummary-text', | 'text' => '@common/mail/cronOrdersSummary-text', |
namespace common\components; | namespace common\components; | ||||
use domain\Producer\Producer\Producer; | use domain\Producer\Producer\Producer; | ||||
use domain\Setting\AdminSettingBag; | |||||
use yii\base\ErrorException; | |||||
use yii\mail\MessageInterface; | use yii\mail\MessageInterface; | ||||
class MailerService | class MailerService | ||||
return $message->send(); | return $message->send(); | ||||
} | } | ||||
public function getMailer() | |||||
{ | |||||
$mailerSetting = AdminSettingBag::getInstance()->get('mailer'); | |||||
if(!$mailerSetting) { | |||||
throw new ErrorException("Aucun mailer défini pour les emails courants."); | |||||
} | |||||
if(isset(\Yii::$app->$mailerSetting)) { | |||||
return \Yii::$app->$mailerSetting; | |||||
} | |||||
else { | |||||
throw new ErrorException("La configuration pour le mailer $mailerSetting est introuvable dans main-local.php"); | |||||
} | |||||
} | |||||
private function composeBase(string $toEmail, string $view, array $params = []) | private function composeBase(string $toEmail, string $view, array $params = []) | ||||
{ | { | ||||
return \Yii::$app->mailer | |||||
return $this->getMailer() | |||||
->compose([ | ->compose([ | ||||
'html' => '@common/mail/'.$view.'-html.php', | 'html' => '@common/mail/'.$view.'-html.php', | ||||
'text' => '@common/mail/'.$view.'-text.php' | 'text' => '@common/mail/'.$view.'-text.php' |
<?php | |||||
/** | |||||
Copyright Souke (2018) | |||||
contact@souke.fr | |||||
Ce logiciel est un programme informatique servant à aider les producteurs | |||||
à distribuer leur production en circuits courts. | |||||
Ce logiciel est régi par la licence CeCILL soumise au droit français et | |||||
respectant les principes de diffusion des logiciels libres. Vous pouvez | |||||
utiliser, modifier et/ou redistribuer ce programme sous les conditions | |||||
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA | |||||
sur le site "http://www.cecill.info". | |||||
En contrepartie de l'accessibilité au code source et des droits de copie, | |||||
de modification et de redistribution accordés par cette licence, il n'est | |||||
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, | |||||
seule une responsabilité restreinte pèse sur l'auteur du programme, le | |||||
titulaire des droits patrimoniaux et les concédants successifs. | |||||
A cet égard l'attention de l'utilisateur est attirée sur les risques | |||||
associés au chargement, à l'utilisation, à la modification et/ou au | |||||
développement et à la reproduction du logiciel par l'utilisateur étant | |||||
donné sa spécificité de logiciel libre, qui peut le rendre complexe à | |||||
manipuler et qui le réserve donc à des développeurs et des professionnels | |||||
avertis possédant des connaissances informatiques approfondies. Les | |||||
utilisateurs sont donc invités à charger et tester l'adéquation du | |||||
logiciel à leurs besoins dans des conditions permettant d'assurer la | |||||
sécurité de leurs systèmes et ou de leurs données et, plus généralement, | |||||
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. | |||||
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez | |||||
pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||||
termes. | |||||
*/ | |||||
namespace common\helpers; | |||||
use Yii; | |||||
class Mail | |||||
{ | |||||
public static function send($email, $subject, $view, $data) | |||||
{ | |||||
$mail = Yii::$app->mailer->compose( | |||||
[ 'html' => $view.'-html', | |||||
'text' => $view.'-text' | |||||
], | |||||
$data) | |||||
->setTo($email) | |||||
->setFrom(['contact@souke.fr' => 'Souke']) | |||||
->setSubject('[Souke] '.$subject) | |||||
->send(); | |||||
} | |||||
} |
<p>Veuillez trouver en pièce jointe votre <?= strtolower($documentModule->getType($document)) ?> <?php if($documentModule->isStatusValid($document)): ?>N°<?= $document->reference ?><?php endif; ?>.</p> | <p>Veuillez trouver en pièce jointe votre <?= strtolower($documentModule->getType($document)) ?> <?php if($documentModule->isStatusValid($document)): ?>N°<?= $document->reference ?><?php endif; ?>.</p> | ||||
<p>À bientôt.</p> | |||||
<p>Bonne réception,<br /> | |||||
<?= Html::encode($producer->name) ?></p> |
*/ | */ | ||||
use domain\Document\Document\DocumentModule; | use domain\Document\Document\DocumentModule; | ||||
use yii\helpers\Html; | |||||
$documentModule = DocumentModule::getInstance(); | $documentModule = DocumentModule::getInstance(); | ||||
Veuillez trouver en pièce jointe votre <?= strtolower($documentModule->getType($document)) ?> <?php if($documentModule->isStatusValid($document)): ?>N°<?= $document->reference ?><?php endif; ?>. | Veuillez trouver en pièce jointe votre <?= strtolower($documentModule->getType($document)) ?> <?php if($documentModule->isStatusValid($document)): ?>N°<?= $document->reference ?><?php endif; ?>. | ||||
À bientôt. | |||||
Bonne réception, | |||||
<?= $producer->name ?> |
$distributionModule = DistributionModule::getInstance(); | $distributionModule = DistributionModule::getInstance(); | ||||
$ordersArray = $orderModule->getRepository()->findOrdersByDistribution($distribution); | $ordersArray = $orderModule->getRepository()->findOrdersByDistribution($distribution); | ||||
$mail = \Yii::$app->mailer->compose( | |||||
$mail = \Yii::$app->mailerService->getMailer()->compose( | |||||
[ | [ | ||||
'html' => '@common/mail/cronOrdersSummary-html', | 'html' => '@common/mail/cronOrdersSummary-html', | ||||
'text' => '@common/mail/cronOrdersSummary-text', | 'text' => '@common/mail/cronOrdersSummary-text', |
$subjectEmail .= ' N°' . $document->reference; | $subjectEmail .= ' N°' . $document->reference; | ||||
} | } | ||||
$email = \Yii::$app->mailer->compose( | |||||
$email = \Yii::$app->mailerService->getMailer()->compose( | |||||
[ | [ | ||||
'html' => '@common/mail/sendDocument-html', | 'html' => '@common/mail/sendDocument-html', | ||||
'text' => '@common/mail/sendDocument-text' | 'text' => '@common/mail/sendDocument-text' | ||||
], [ | ], [ | ||||
'document' => $document | |||||
'document' => $document, | |||||
'producer' => $producer | |||||
]) | ]) | ||||
->setTo($this->userSolver->getEmailSendingInvoicingDocuments($document->user)) | ->setTo($this->userSolver->getEmailSendingInvoicingDocuments($document->user)) | ||||
->setFrom([$this->producerSolver->getProducerEmailPlatform($producer) => $producer->name]) | ->setFrom([$this->producerSolver->getProducerEmailPlatform($producer) => $producer->name]) |
use domain\Setting\SettingDetails\Admin\General\AdministratorPhoneNumberAdminSetting; | use domain\Setting\SettingDetails\Admin\General\AdministratorPhoneNumberAdminSetting; | ||||
use domain\Setting\SettingDetails\Admin\General\BulkMailerAdminSetting; | use domain\Setting\SettingDetails\Admin\General\BulkMailerAdminSetting; | ||||
use domain\Setting\SettingDetails\Admin\General\ForumFlarumUrlAdminSetting; | use domain\Setting\SettingDetails\Admin\General\ForumFlarumUrlAdminSetting; | ||||
use domain\Setting\SettingDetails\Admin\General\MailerAdminSetting; | |||||
use domain\Setting\SettingDetails\Admin\General\MaximumNumberProducersAdminSetting; | use domain\Setting\SettingDetails\Admin\General\MaximumNumberProducersAdminSetting; | ||||
use domain\Setting\SettingDetails\Admin\General\SupportOnlineAdminSetting; | use domain\Setting\SettingDetails\Admin\General\SupportOnlineAdminSetting; | ||||
use domain\Setting\SettingDetails\Admin\AlertMessage\AdminAlertMessageDisplaySetting; | use domain\Setting\SettingDetails\Admin\AlertMessage\AdminAlertMessageDisplaySetting; | ||||
new AdministratorPhoneNumberAdminSetting(), | new AdministratorPhoneNumberAdminSetting(), | ||||
new MaximumNumberProducersAdminSetting(), | new MaximumNumberProducersAdminSetting(), | ||||
new ForumFlarumUrlAdminSetting(), | new ForumFlarumUrlAdminSetting(), | ||||
new MailerAdminSetting(), | |||||
new BulkMailerAdminSetting(), | new BulkMailerAdminSetting(), | ||||
] | ] | ||||
], | ], |
<?php | |||||
namespace domain\Setting\SettingDetails\Admin\General; | |||||
use common\components\BulkMailer\BulkMailerInterface; | |||||
use domain\Setting\SettingDetails\AbstractSettingDetail; | |||||
class MailerAdminSetting extends AbstractSettingDetail | |||||
{ | |||||
public function __construct() | |||||
{ | |||||
$this | |||||
->setName('mailer') | |||||
->setLabel("Mailer emails courants") | |||||
->setTypeString() | |||||
->setFormTypeSelect([ | |||||
'mailerFile' => 'Fichier (local)', | |||||
'mailerSmtpAlwaysdata' => 'Alwaysdata (SMTP)', | |||||
'mailerSmtpBrevo' => 'Brevo (SMTP)', | |||||
'mailerApiMailjet' => 'Mailjet (API)', | |||||
]); | |||||
} | |||||
} |
$producer = $this->producerRepository->findOneProducerById($payment->id_producer); | $producer = $this->producerRepository->findOneProducerById($payment->id_producer); | ||||
if($user && $user->email && strlen($user->email) > 0) { | if($user && $user->email && strlen($user->email) > 0) { | ||||
\Yii::$app->mailer->compose( | |||||
\Yii::$app->mailerService->getMailer()->compose( | |||||
[ | [ | ||||
'html' => '@common/mail/creditLimitReminder-html', | 'html' => '@common/mail/creditLimitReminder-html', | ||||
'text' => '@common/mail/creditLimitReminder-text' | 'text' => '@common/mail/creditLimitReminder-text' |