Mailer - PNixx/Boot GitHub Wiki

Использование шаблонизатора писем в вашем проекте. Структура папок:

/application/mailers/      - контроллеры писем
/application/views/mailer/ - шаблоны писем
/test/mailers/             - превью писем

Создание

Создаем файл контроллера почтовика для отправки письма после успешной оплаты /application/mailers/payment.php.

<?php
class PaymentMailer extends Boot_Mailer_Abstract {

	//Возможно использовать layout в теле письма
	protected static $layout = 'mailer';

	//Функция отправки. Параметры вы можете указать любые, либо не указывать вовсе.
	public static function success(Model_Payment $payment) {
		self::$params = [
			'payment' => $payment,
		];
		self::mail($payment->email, 'Оплата мероприятия успешно завершена');
	}
}

Создаем шаблон письма в директории /application/views/mailer/payment/success.phtml:

<p>Оплата события прошла успешно. Ваш номер №<?= $payment->id ?></p>

Использование

Использовать почтовик можно в любом месте кода, например после создания платежки в модели:

class Model_Payment extends ActiveRecord {

	//После создания отправляем сообщение на почту
	protected function after_create($old) {

		//Сообщение участнику об успешном зачислении
		PaymentMailer::success($this);
	}
}

Live debug

Верстку писем можно легко проверять, не отправляя письма фактически. Достаточно открыть адрес в браузере http://example.com/boot/mailer/ и создать файл /test/mailers/payment.php:

<?
class PaymentMailerPreview {
	public static function success() {
		PaymentMailer::success(Model_Payment::limit(1)->row());
	}
}