API отправки писем


НАЧАЛО >> Отправка писем от имени системы >> API отправки писем📄 Скачать в DOCX


Раздел описывает программную отправку писем через модуль I128FMail, включая передачу файловых вложений.

1. Основные функции

I128FMail/Mail выбирает способ отправки по настройкам записи ящика: если включен SMTP, вызывается MailSMTP; если включен HTTP-шлюз, вызывается MailHTTP. Если параметр inbackground равен true, письмо ставится в очередь Queue, а вложения передаются в параметры задачи очереди.

2. Параметр attaches

Для отправки файлов используется необязательный параметр attaches. Это массив вложений, где каждый элемент описывает один файл:

$attaches = [
    [
        'file_path' => 'C:\\path\\report.pdf',
        'mime_type' => 'application/pdf',
    ],
];

Поля элемента:

3. SMTP-отправка

При SMTP-отправке MailSMTP добавляет каждый файл из attaches в письмо через PHPMailer. Для каждого элемента используется file_path.

Файл должен существовать и быть доступен процессу, который выполняет отправку. Если письмо отправляется через очередь, файл должен оставаться доступным до момента обработки фоновой задачи.

4. HTTP-шлюз

При HTTP-отправке MailHTTP формирует POST-запрос к настроенному шлюзу. Поля темы, тела письма, адреса отправителя и адреса получателя берутся из настроек записи ящика.

Файлы из attaches добавляются в параметр files[]. Перед добавлением модуль проверяет наличие файла по file_path; если файл не найден, отправка продолжает работу без этого файла и фиксирует диагностическое сообщение.

5. Фоновая отправка

Если I128FMail/Mail вызывается с inbackground = true, параметры письма и массив attaches помещаются в очередь Queue. Затем action I128FMail/SendMail получает эти параметры и выполняет обычную отправку через I128FMail/Mail.

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

6. Рекомендации