Обвязка подачи на C

C Submission API
Самая подробная из пяти

Обвязка подачи на C — четвёртая из пяти в главе: те же операции, что у C++, но функциями с общими приставками PmtaConn, PmtaMsg и PmtaRcpt в заголовках submitter/PmtaConn.h, PmtaMsg.h и PmtaRcpt.h.

Разница — в жизни объекта и ошибках: объект выделяют функцией …Alloc, инициализируют, а по окончании освобождают …Free; функции возвращают признак успеха, а причину отдают …GetLastError.

Подключение — двумя функциями: PmtaConnConnectRemote без входа и PmtaConnConnectRemoteAuth с логином и паролем; прежняя PmtaConnConnect устарела.

Главная ловушка — не проверять возвращаемое значение. Функции не бросают исключений: ошибка видна только по возврату FALSE, и объект после неё негоден — его освобождают и создают заново.
Что делает Хаб. Не используется: письма прогрева Хаб подаёт по SMTP.
Рекомендуемые значения

Порядок работы с объектом:

Шаг Соединение Письмо
выделить PmtaConnAlloc PmtaMsgAlloc
инициализировать PmtaConnConnectRemote PmtaMsgInit
узнать причину ошибки PmtaConnGetLastError PmtaMsgGetLastError
освободить PmtaConnFree PmtaMsgFree
Приставки, заголовки, разделение выделения и инициализации, освобождение и запрос ошибки — из руководства (§ 7.5). Таблица — наша.
Пример в конфигурации
# подключиться к узлу с логином и паролем
PmtaConn conn = PmtaConnAlloc();
PmtaConnConnectRemoteAuth(conn, "10.0.0.5", 25, "user", "secret");
Возврат FALSE — ошибка: причину даёт PmtaConnGetLastError(conn), после чего соединение освобождают PmtaConnFree.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Проверить, что заголовки обвязки на месте:
ls /opt/pmta/api/include/submitter/
Файлы PmtaConn.h, PmtaMsg.h и PmtaRcpt.h — обвязка C установлена.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Подключить платформу отправки