Exemple #1
0
 public function newUserCustomer($firstName, $lastName, $password, $email, $clientDomain, $clientId)
 {
     $smtpSettings = UbirimiContainer::get()['repository']->get(SMTPServer::class)->getByClientId($clientId);
     if ($smtpSettings) {
         EmailRepository::$smtpSettings = $smtpSettings;
     } else {
         EmailRepository::$smtpSettings = Util::getUbirimiSMTPSettings();
     }
     UbirimiContainer::get()['repository']->get(EmailRepository::class)->sendNewCustomerNotificationEmail($clientId, $firstName, $lastName, $email, $password, $clientDomain);
 }
use Ubirimi\Repository\SMTPServer;
use Ubirimi\Util;
/* check locking mechanism */
if (file_exists(__DIR__ . '/process_mail_queue.lock')) {
    $fp = fopen('process_mail_queue.lock', 'w+');
    if (!flock($fp, LOCK_EX | LOCK_NB)) {
        echo "Unable to obtain lock for process_mail_queue task.\n";
        exit(-1);
    }
}
require_once __DIR__ . '/../web/bootstrap_cli.php';
$emails = UbirimiContainer::get()['repository']->get(EmailQueue::class)->getBatch();
while ($emails && ($email = $emails->fetch_array(MYSQLI_ASSOC))) {
    $smtpSettings = UbirimiContainer::get()['repository']->get(SMTPServer::class)->getByClientId($email['client_id']);
    if (null == $smtpSettings) {
        $smtpSettings = Util::getUbirimiSMTPSettings();
    }
    try {
        echo 'Process email Id: ' . $email['id'] . "\n";
        UbirimiContainer::get()['repository']->get(EmailQueue::class)->send($smtpSettings, $email);
        UbirimiContainer::get()['repository']->get(EmailQueue::class)->deleteById($email['id']);
    } catch (Swift_TransportException $e) {
        echo $e->getMessage() . "\n";
    } catch (Swift_IoException $e) {
        echo $e->getMessage() . "\n";
    } catch (Swift_RfcComplianceException $e) {
        echo $e->getMessage() . "\n";
    } catch (\Exception $e) {
        echo $e->getMessage() . "\n";
    }
}