Avoid PHPMailer boiler plate repetition
This commit is contained in:
@@ -44,7 +44,6 @@ class Email extends PhpObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function send() {
|
public function send() {
|
||||||
foreach($this->asDests as $asDest) {
|
|
||||||
$oPHPMailer = new PHPMailer(true);
|
$oPHPMailer = new PHPMailer(true);
|
||||||
|
|
||||||
//Server settings
|
//Server settings
|
||||||
@@ -61,6 +60,7 @@ class Email extends PhpObject {
|
|||||||
$oPHPMailer->setFrom(Settings::MAIL_FROM, 'Spotty');
|
$oPHPMailer->setFrom(Settings::MAIL_FROM, 'Spotty');
|
||||||
$oPHPMailer->addReplyTo(Settings::MAIL_FROM, 'Spotty');
|
$oPHPMailer->addReplyTo(Settings::MAIL_FROM, 'Spotty');
|
||||||
|
|
||||||
|
foreach($this->asDests as $asDest) {
|
||||||
//Message
|
//Message
|
||||||
$this->oTemplate->setLanguage($asDest['language'], Spot::DEFAULT_LANG);
|
$this->oTemplate->setLanguage($asDest['language'], Spot::DEFAULT_LANG);
|
||||||
$this->oTemplate->setTimezone($asDest['timezone']);
|
$this->oTemplate->setTimezone($asDest['timezone']);
|
||||||
@@ -77,7 +77,12 @@ class Email extends PhpObject {
|
|||||||
$sPlainMessage = strip_tags(str_replace('<br />', "\n", $sHtmlMessage));
|
$sPlainMessage = strip_tags(str_replace('<br />', "\n", $sHtmlMessage));
|
||||||
|
|
||||||
//Recipients
|
//Recipients
|
||||||
|
try {
|
||||||
$oPHPMailer->addAddress($asDest['email'], $asDest['name']);
|
$oPHPMailer->addAddress($asDest['email'], $asDest['name']);
|
||||||
|
} catch (Exception $oError) {
|
||||||
|
$this->addError('Invalid address skipped: '.$asDest['email'].' ('.$asDest['name'].')');
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
//Content
|
//Content
|
||||||
$oPHPMailer->isHTML(true);
|
$oPHPMailer->isHTML(true);
|
||||||
@@ -85,13 +90,18 @@ class Email extends PhpObject {
|
|||||||
$oPHPMailer->Body = $sHtmlMessage;
|
$oPHPMailer->Body = $sHtmlMessage;
|
||||||
$oPHPMailer->AltBody = $sPlainMessage;
|
$oPHPMailer->AltBody = $sPlainMessage;
|
||||||
|
|
||||||
|
$bSuccess = true;
|
||||||
try {
|
try {
|
||||||
$oPHPMailer->send();
|
$bSuccess = $bSuccess && $oPHPMailer->send();
|
||||||
}
|
}
|
||||||
catch (Exception $e) {
|
catch (Exception $oError) {
|
||||||
$this->addError('Message could not be sent to "'.$asDest['email'].'". Mailer Error: '.$oPHPMailer->ErrorInfo);
|
$this->addError('Message could not be sent to "'.$asDest['email'].'". Mailer Error: '.$oPHPMailer->ErrorInfo);
|
||||||
|
$oPHPMailer->getSMTPInstance()->reset();
|
||||||
}
|
}
|
||||||
|
$oPHPMailer->clearAddresses();
|
||||||
|
$oPHPMailer->clearCustomHeaders();
|
||||||
}
|
}
|
||||||
|
return $bSuccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function getTimeZoneCity($sTimeZone) {
|
private static function getTimeZoneCity($sTimeZone) {
|
||||||
|
|||||||
Reference in New Issue
Block a user