RFC 1985
Remote Message Queue Starting (ETRN)¶
The SMTP ETRN extension is used to request a remote MTA to start its delivery queue for the specified domain. If the application requests the use if the ETRN extension and the remote MTA does not list ETRN, libESMTP will use the event callback to notify the application.
-
smtp_etrn_node_t smtp_etrn_add_node(smtp_session_t session, int option, const char *domain)¶
create an ETRN node.
Parameters
smtp_session_t sessionThe session.
int optionThe option character.
const char *domainRequest mail for this domain.
Description
Add an ETRN node to the SMTP session.
Return
An typedef smtp_etrn_node_t or NULL on failure.
-
int smtp_etrn_enumerate_nodes(smtp_session_t session, smtp_etrn_enumerate_nodecb_t cb, void *arg)¶
Call function for each ETRN node in session.
Parameters
smtp_session_t sessionThe session.
smtp_etrn_enumerate_nodecb_t cbCallback function
void *argArgument (closure) passed to callback.
Description
Call the callback function once for each ETRN node in the SMTP session.
Return
Zero on failure, non-zero on success.
-
const smtp_status_t *smtp_etrn_node_status(smtp_etrn_node_t node)¶
Retrieve ETRN status.
Parameters
smtp_etrn_node_t nodeAn
smtp_etrn_node_treturned by smtp_etrn_add_node()
Description
Retrieve the ETRN node success/failure status from a previous SMTP session. This includes SMTP status codes, RFC 2034 enhanced status codes, if available and text from the server describing the status.
Return
NULL if no status information is available,
otherwise a pointer to the status information. The pointer remains valid
until the next call to libESMTP in the same thread.
-
void *smtp_etrn_set_application_data(smtp_etrn_node_t node, void *data)¶
Associate data with an ETRN node.
Parameters
smtp_etrn_node_t nodeAn
smtp_etrn_node_treturned by smtp_etrn_add_node()void *dataApplication data to set
Description
Associate application defined data with the opaque ETRN structure.
Only available when LIBESMTP_ENABLE_DEPRECATED_SYMBOLS is defined.
Use smtp_etrn_set_application_data_release() instead.
Return
Previously set application data or NULL.
-
void smtp_etrn_set_application_data_release(smtp_etrn_node_t node, void *data, void (*release)(void*))¶
Associate data with an ETRN node.
Parameters
smtp_etrn_node_t nodeAn
smtp_etrn_node_treturned by smtp_etrn_add_node()void *dataApplication data
void (*release) (void *)function to free/unref data.
Description
Associate application data with the ETRN node. If release is non-NULL it is called to free or unreference data when changed or the session is destroyed.
-
void *smtp_etrn_get_application_data(smtp_etrn_node_t node)¶
Get data from an ETRN node.
Parameters
smtp_etrn_node_t nodeAn
smtp_etrn_node_treturned by smtp_etrn_add_node()
Description
Retrieve application data from the opaque ETRN structure.
Return
Application data or NULL.