НАЧАЛО >> Отправка писем от имени системы >> API отправки писем📄 Скачать в DOCX
Раздел описывает программную отправку писем через модуль I128FMail, включая передачу файловых вложений.
I128FMail/Mail отправляет письмо через указанную запись настроек почтового ящика I128FMail.I128FMail/GMail находит основной почтовый ящик системы MainI128FMail и передает отправку в I128FMail/Mail.I128FMail/MailSMTP отправляет письмо через SMTP.I128FMail/MailHTTP передает письмо во внешний HTTP-шлюз.I128FMail/SendMail используется очередью Queue для фоновой отправки.I128FMail/Mail выбирает способ отправки по настройкам записи ящика: если включен SMTP, вызывается MailSMTP; если включен HTTP-шлюз, вызывается MailHTTP. Если параметр inbackground равен true, письмо ставится в очередь Queue, а вложения передаются в параметры задачи очереди.
attachesДля отправки файлов используется необязательный параметр attaches. Это массив вложений, где каждый элемент описывает один файл:
$attaches = [
[
'file_path' => 'C:\\path\\report.pdf',
'mime_type' => 'application/pdf',
],
];
Поля элемента:
file_path — путь к файлу, доступный серверному PHP-процессу в момент отправки;mime_type — MIME-тип файла. Для SMTP-отправки используется путь к файлу, а MIME-тип может не влиять на результат. Для HTTP-шлюза MIME-тип передается при создании curl_file_create; если значение пустое, используется text/plain.При SMTP-отправке MailSMTP добавляет каждый файл из attaches в письмо через PHPMailer. Для каждого элемента используется file_path.
Файл должен существовать и быть доступен процессу, который выполняет отправку. Если письмо отправляется через очередь, файл должен оставаться доступным до момента обработки фоновой задачи.
При HTTP-отправке MailHTTP формирует POST-запрос к настроенному шлюзу. Поля темы, тела письма, адреса отправителя и адреса получателя берутся из настроек записи ящика.
Файлы из attaches добавляются в параметр files[]. Перед добавлением модуль проверяет наличие файла по file_path; если файл не найден, отправка продолжает работу без этого файла и фиксирует диагностическое сообщение.
Если I128FMail/Mail вызывается с inbackground = true, параметры письма и массив attaches помещаются в очередь Queue. Затем action I128FMail/SendMail получает эти параметры и выполняет обычную отправку через I128FMail/Mail.
Для фоновой отправки особенно важно использовать стабильные пути к файлам. Временный файл нельзя удалять сразу после постановки письма в очередь, иначе обработчик очереди не сможет прикрепить его к письму.
file_path непроверенный пользовательский ввод.