Работа с электронной почтой Email

Для работы с электронной почтой существуют два вида драйверов APACHE (стандартная рассылка через команду mail) и отправка сообщений через SMTP сервер

Драйвер указывается через настройки(см раздел Подключение). В конфигцурации

Отправка письма

Для отправки электронного сообщения используется метод

<?php
/**
 * $text string Тело сообщения
 * $address array|string Почтовый ящик, или массив ящиков на который будет отправлено сообщение
 * $subject string Тема сообщения
 * $db string Указатель на подключение в конфигурации
 */
send($text,$adress=array(),$subject='System mail',$db='');

Ошибки возникшие в процессе отправки вернуться в результате выполнения метода

Также есть возможность поймать ошибку в виде исключения

<?php
/**
 * $text string Тело сообщения
 * $address array|string Почтовый ящик, или массив ящиков на который будет отправлено сообщение
 * $subject string Тема сообщения
 * $db string Указатель на подключение в конфигурации
 */
sendOrFail($text,$adress=array(),$subject='System mail',$db='');

Перед отправкой сообщения вы можете настроить дополнительные необязательные параметры. Копия, скрытая копия, на какой ящик будет автоматически отправлен ответ. Все они сохранятся для указанного подключения

<?php
/**
 * Установить копию
 * $address string|array Адреса копии
 * $db string Указатель на подключение в конфигурации
 */
c\mail::setCc($adress=array(),$db='');

/**
 * Установить скрытую копию
 * $address string|array Адреса скрытой копии
 * $db string Указатель на подключение в конфигурации
 */
c\mail::setBcc($adress=array(),$db='');

/**
 * Установить адреса для ответа
 * $address string|array Адреса для ответа
 * $db string Указатель на подключение в конфигурации
 */
c\mail::setReplyTo($adress=array(),$db='');

Работа с вложениями

Вы можете добавлять вложения к письму через ссылки на файл, через передачу самого файла а также управлять отображением вложений в теле письма через следующие методы

 

<?php
/**
 * Добавление вложения по ссылке на файл в письмо
 * $sourceFilename string Ссылка на файл
 * $totalFilename string Название файла внутри письма (по умолчанию - соответствует названию файла)
 * $cid string Ссылка на изображение для отображения в теле
 * $db Указатель на подключение в конфигурации
 */
c\mail::AddAttachment($sourceFilename,$totalFilename='', $cid='',$db='');

/**
 * Добавление вложения по содержанию в письмо
 * $text string Содержание
 * $totalFilename string Название файла внутри письма
 * $cid string Ссылка на изображение для отображения в теле
 * $db Указатель на подключение в конфигурации
 */
c\mail::AddStringAttachment($text,$totalFilename, $cid='',$db='');

/**
 * Обернуть ссылки внутри текста как вложения
 * $text string Содержание
 * $cacheFolder string Папка для кеширования одинаковых изображений в письмах для ускорения массовых рассылок
 * $db Указатель на подключение в конфигурации
 * @return Текст с замененными ссылками через cid
 */
c\mail::embedAttachment($text,$cacheFolder=null,$db='');

/**
 * Очистить все ранее вложенные в письмо файлы
 * $db Указатель на подключение в конфигурации
 */
c\mail::ClearAttachments($db='');

Тестирование отправки почты

Для возможности тестировать отправку почты и получать уведомления на свой ящик, вместо отправки на обычный ящик - нужно указать свой ящик через метод

c\mail::test($address=null);

все последующие письма будут идти на ящик указанный внутри, оригинальный ящик будет добавлен к теме сообщения через скобки

Колбек при изменении почты

Вы можете назначить событие которое будет отрабатывать каждый раз когда вы вызываете изменение состояния почты. Указывать его можно через глобальный параметр

core::$data['mail_modify_callback']

Создано при помощи сервиса Core CMS