Обвязка подачи на C — четвёртая из пяти в главе: те же операции, что у C++, но функциями с общими приставками PmtaConn, PmtaMsg и PmtaRcpt в заголовках submitter/PmtaConn.h, PmtaMsg.h и PmtaRcpt.h.
Разница — в жизни объекта и ошибках: объект выделяют функцией …Alloc, инициализируют, а по окончании освобождают …Free; функции возвращают признак успеха, а причину отдают …GetLastError.
Подключение — двумя функциями: PmtaConnConnectRemote без входа и PmtaConnConnectRemoteAuth с логином и паролем; прежняя PmtaConnConnect устарела.
Порядок работы с объектом:
| Шаг | Соединение | Письмо |
|---|---|---|
| выделить | PmtaConnAlloc | PmtaMsgAlloc |
| инициализировать | PmtaConnConnectRemote | PmtaMsgInit |
| узнать причину ошибки | PmtaConnGetLastError | PmtaMsgGetLastError |
| освободить | PmtaConnFree | PmtaMsgFree |
# подключиться к узлу с логином и паролем PmtaConn conn = PmtaConnAlloc(); PmtaConnConnectRemoteAuth(conn, "10.0.0.5", 25, "user", "secret");
3 связи
Жизнь объекта в обвязке CСмежный механизм: они работают вместе. § 7.5.1
Обвязка подачи на C++Та же настройка на другом уровне. § 7.5
ls /opt/pmta/api/include/submitter/
3 статьи
◇Как письмо попадает в MTAШесть описанных способов подачи: расширенный SMTP, четыре языковые обвязки и каталог, за которым узел следит на диске.◇Кому разрешено сдавать почту и для кого её приниматьИз коробки узел принимает подачу только с самой машины; два разных вопроса — «кто может слать через нас» и «на чьи адреса мы принимаем» — решаются разными директивами.◇Заголовки, которыми отправитель управляет доставкойШесть служебных заголовков позволяют подающей стороне выбрать поток, пометить письмо заданием, задать настройки и ключ подписи, идентификатор конверта и расписание; каждый разрешается отдельно и по источникам.