/*++ /* NAME /* bounce 3 /* SUMMARY /* bounce service client /* SYNOPSIS /* #include <bounce.h> /* /* int bounce_append(flags, id, stats, recipient, relay, tstats, dsn) /* int flags; /* const char *id; /* MSG_STATS *stats; /* RECIPIENT *rcpt; /* const char *relay; /* const POL_STATS *tstats; /* DSN *dsn; /* /* int bounce_flush(flags, queue, id, encoding, sendopts, sender, /* dsn_envid, dsn_ret) /* int flags; /* const char *queue; /* const char *id; /* const char *encoding; /* int sendopts; /* const char *sender; /* const char *dsn_envid; /* int dsn_ret; /* /* int bounce_flush_verp(flags, queue, id, encoding, sendopts, /* sender, dsn_envid, dsn_ret, verp_delims) /* int flags; /* const char *queue; /* const char *id; /* const char *encoding; /* int sendopts; /* const char *sender; /* const char *dsn_envid; /* int dsn_ret; /* const char *verp_delims; /* /* int bounce_one(flags, queue, id, encoding, sendopts, sender, /* dsn_envid, ret, stats, recipient, relay, /* tstats, dsn) /* int flags; /* const char *queue; /* const char *id; /* const char *encoding; /* int sendopts; /* const char *sender; /* const char *dsn_envid; /* int dsn_ret; /* MSG_STATS *stats; /* RECIPIENT *rcpt; /* const char *relay; /* const POL_STATS *tstats; /* DSN *dsn; /* /* void bounce_client_init(title, maps) /* const char *title; /* const char *maps; /* INTERNAL API /* DSN_FILTER *delivery_status_filter; /* /* int bounce_append_intern(flags, id, stats, recipient, relay, tstats, dsn) /* int flags; /* const char *id; /* MSG_STATS *stats; /* RECIPIENT *rcpt; /* const char *relay; /* const POL_STATS *tstats; /* DSN *dsn; /* /* int bounce_one_intern(flags, queue, id, encoding, sendopts, sender, /* dsn_envid, ret, stats, recipient, relay, tstats, dsn) /* int flags; /* const char *queue; /* const char *id; /* const char *encoding; /* int sendopts; /* const char *sender; /* const char *dsn_envid; /* int dsn_ret; /* MSG_STATS *stats; /* RECIPIENT *rcpt; /* const char *relay; /* const POL_STATS *tstats; /* DSN *dsn; /* DESCRIPTION /* This module implements the client interface to the message /* bounce service, which maintains a per-message log of status /* records with recipients that were bounced, and the dsn_text why. /* /* bounce_append() appends a dsn_text for non-delivery to the /* bounce log for the named recipient, updates the address /* verification service, or updates a message delivery record /* on request by the sender. The flags argument determines /* the action. /* /* bounce_flush() actually bounces the specified message to /* the specified sender, including the bounce log that was /* built with bounce_append(). The bounce logfile is removed /* upon successful completion. /* /* bounce_flush_verp() is like bounce_flush(), but sends one /* notification per recipient, with the failed recipient encoded /* into the sender address. /* /* bounce_one() bounces one recipient and immediately sends a /* notification to the sender. This procedure does not append /* the recipient and dsn_text to the per-message bounce log, and /* should be used when a delivery agent changes the error /* return address in a manner that depends on the recipient /* address. /* /* bounce_client_init() initializes an optional DSN filter. /* /* bounce_append_intern() and bounce_one_intern() are for use /* after the DSN filter. /* /* Arguments: /* .IP flags /* The bitwise OR of zero or more of the following (specify /* BOUNCE_FLAG_NONE to request no special processing): /* .RS /* .IP BOUNCE_FLAG_CLEAN /* Delete the bounce log in case of an error (as in: pretend /* that we never even tried to bounce this message). /* .IP BOUNCE_FLAG_DELRCPT /* When specified with a flush request, request that /* recipients be deleted from the queue file. /* /* Note: the bounce daemon ignores this request when the /* recipient queue file offset is <= 0. /* .IP DEL_REQ_FLAG_MTA_VRFY /* The message is an MTA-requested address verification probe. /* Update the address verification database instead of bouncing /* mail. /* .IP DEL_REQ_FLAG_USR_VRFY /* The message is a user-requested address expansion probe. /* Update the message delivery record instead of bouncing mail. /* .IP DEL_REQ_FLAG_RECORD /* This is a normal message with logged delivery. Update the /* message delivery record and bounce the mail. /* .RE /* .IP queue /* The message queue name of the original message file. /* .IP id /* The message queue id if the original message file. The bounce log /* file has the same name as the original message file. /* .IP stats /* Time stamps from different message delivery stages /* and session reuse count. /* .IP rcpt /* Recipient information. See recipient_list(3). /* .IP relay /* Name of the host that the message could not be delivered to. /* This information is used for syslogging only. /* .IP encoding /* The body content encoding: MAIL_ATTR_ENC_{7BIT,8BIT,NONE}. /* .IP sendopts /* Sender-requested SMTPUTF8 or RequireTLS support. /* .IP sender /* The sender envelope address. /* .IP tstats /* TLS per-feature status. /* .IP dsn_envid /* Optional DSN envelope ID. /* .IP dsn_ret /* Optional DSN return full/headers option. /* .IP dsn /* Delivery status. See dsn(3). The specified action is ignored. /* .IP verp_delims /* VERP delimiter characters, used when encoding the failed /* sender into the envelope sender address. /* DIAGNOSTICS /* In case of success, these functions log the action, and return a /* zero value. Otherwise, the functions return a non-zero result, /* and when BOUNCE_FLAG_CLEAN is disabled, log that message /* delivery is deferred. /* .IP title /* The origin of the optional DSN filter lookup table names. /* .IP maps /* The optional "type:table" DSN filter lookup table names, /* separated by comma or whitespace. /* BUGS /* Should be replaced by routines with an attribute-value based /* interface instead of an interface that uses a rigid argument list. /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA /* /* Wietse Venema /* Google, Inc. /* 111 8th Avenue /* New York, NY 10011, USA /* /* Wietse Venema /* porcupine.org
/*--*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.