bounce_error_classify

March 26, 2020 Contributors

Name

bounce_error_classify

Synopsis

#include "hooks/core/bounce_error_classify.h"

| int **bounce_error_classify** ( | closure, |   |
|   | body, |   |
|   | len, |   |
|   | pos); |   |

void * <var class="pdparam">closure</var>;
const char * <var class="pdparam">body</var>;
int <var class="pdparam">len</var>;
int * <var class="pdparam">pos</var>;

| int **has_core_bounce_error_classify_hook** ( | ); |   |

| void **register_core_bounce_error_classify_hook_first** ( | hook, |   |
|   | closure); |   |

ec_hook_core_bounce_error_classify_func_t <var class="pdparam">hook</var>;
void *<var class="pdparam">closure</var>;

| void **register_core_bounce_error_classify_hook_last** ( | hook, |   |
|   | closure); |   |

ec_hook_core_bounce_error_classify_func_t <var class="pdparam">hook</var>;
void *<var class="pdparam">closure</var>;

| int **call_core_bounce_error_classify_hook** ( | body, |   |
|   | len, |   |
|   | pos); |   |

const char * <var class="pdparam">body</var>;
int <var class="pdparam">len</var>;
int * <var class="pdparam">pos</var>;

Description

Bounce classify an out of band bounce

The system calls this hook when bounce_classify2() or bounce_classify() are called. You should not invoke this hook directly; use bounce_classify2() instead.

The system guarantees that body will not include the trailing "." from the message terminator. In addition, the message payload will have transfer decoding removed.

The hook implementation returns a bounce classification code from the range defined in misc/smtp_error_codes.h, which may include custom classifications registered via smtp_error_register_class().

If the hook classifies the message, it will update the integer to which "pos" points to reflect the start of the substring of body that was responsible for the classification.