/*++ /* NAME /* smtp_rcpt 3 /* SUMMARY /* application-specific recipient list operations /* SYNOPSIS /* #include <smtp.h> /* /* SMTP_RCPT_INIT(state) /* SMTP_STATE *state; /* /* SMTP_RCPT_DROP(state, rcpt) /* SMTP_STATE *state; /* RECIPIENT *rcpt; /* /* SMTP_RCPT_KEEP(state, rcpt) /* SMTP_STATE *state; /* RECIPIENT *rcpt; /* /* SMTP_RCPT_ISMARKED(rcpt) /* RECIPIENT *rcpt; /* /* void smtp_rcpt_cleanup(SMTP_STATE *state) /* SMTP_STATE *state; /* /* int SMTP_RCPT_LEFT(state) /* SMTP_STATE *state; /* /* int SMTP_RCPT_MARK_COUNT(state) /* SMTP_STATE *state; /* /* void smtp_rcpt_done(state, resp, rcpt) /* SMTP_STATE *state; /* SMTP_RESP *resp; /* RECIPIENT *rcpt; /* DESCRIPTION /* This module implements application-specific mark and sweep /* operations on recipient lists. Operation is as follows: /* .IP \(bu /* In the course of a delivery attempt each recipient is /* marked either as DROP (remove from recipient list) or KEEP /* (deliver to alternate mail server). /* .IP \(bu /* After a delivery attempt any recipients marked DROP are deleted /* from the request, and the left-over recipients are unmarked. /* .PP /* The mark/sweep algorithm is implemented in a redundant manner, /* and ensures that all recipients are explicitly accounted for. /* /* Operations with upper case names are implemented by macros /* whose arguments may be evaluated more than once. /* /* SMTP_RCPT_INIT() initializes application-specific recipient /* information and must be called before the first delivery attempt. /* /* SMTP_RCPT_DROP() marks the specified recipient as DROP (remove /* from recipient list). It is an error to mark an already marked /* recipient. /* /* SMTP_RCPT_KEEP() marks the specified recipient as KEEP (deliver /* to alternate mail server). It is an error to mark an already /* marked recipient. /* /* SMTP_RCPT_ISMARKED() returns non-zero when the specified /* recipient is marked. /* /* SMTP_RCPT_LEFT() returns the number of left_over recipients /* (the total number of marked and non-marked recipients). /* /* SMTP_RCPT_MARK_COUNT() returns the number of left_over /* recipients that are marked. /* /* smtp_rcpt_cleanup() cleans up the in-memory recipient list. /* It removes the recipients marked DROP from the left-over /* recipients, unmarks the left-over recipients, and enforces /* the requirement that all recipients are marked upon entry. /* /* smtp_rcpt_done() logs that a recipient is completed and upon /* success it marks the recipient as done in the queue file. /* Finally, it marks the in-memory recipient as DROP. /* /* Note: smtp_rcpt_done() may change the order of the recipient /* list. /* DIAGNOSTICS /* Panic: interface violation. /* /* When a recipient can't be logged as completed, the recipient is /* logged as deferred instead. /* BUGS /* The single recipient list abstraction dates from the time /* that the SMTP client would give up after one SMTP session, /* so that each recipient was either bounced, delivered or /* deferred. Implicitly, all recipients were marked as DROP. /* /* This abstraction is less convenient when an SMTP client /* must be able to deliver left-over recipients to a backup /* host. It might be more natural to have an input list with /* recipients to deliver, and an output list with left-over /* recipients. /* 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
/*--*/
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.20Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-08-09)
¤
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.