/*++ /* NAME /* mail_stream 3 /* SUMMARY /* mail stream management /* SYNOPSIS /* #include <mail_stream.h> /* /* typedef struct { /* .in +4
/* VSTREAM *stream; /* read/write stream */ /* char *id; /* queue ID */ /* struct timeval ctime; /* create time */ /* private members... /* .in -4 /* } MAIL_STREAM; /* /* MAIL_STREAM *mail_stream_file(queue, class, service, mode) /* const char *queue; /* const char *class; /* const char *service; /* int mode; /* /* MAIL_STREAM *mail_stream_service(class, service) /* const char *class; /* const char *service; /* /* MAIL_STREAM *mail_stream_command(command) /* const char *command; /* /* void mail_stream_cleanup(info) /* MAIL_STREAM *info; /* /* int mail_stream_finish(info, why) /* MAIL_STREAM *info; /* VSTRING *why; /* /* void mail_stream_ctl(info, op, ...) /* MAIL_STREAM *info; /* int op; /* DESCRIPTION /* This module provides a generic interface to Postfix queue file /* format messages to file, to Postfix server, or to external command. /* The routines that open a stream return a handle with an initialized /* stream and queue id member. The handle is either given to a cleanup /* routine, to dispose of a failed request, or to a finish routine, to /* complete the request. /* /* mail_stream_file() opens a mail stream to a newly-created file and /* arranges for trigger delivery at finish time. This call never fails. /* But it may take forever. The mode argument specifies additional /* file permissions that will be OR-ed in when the file is finished. /* While embryonic files have mode 0600, finished files have mode 0700. /* /* mail_stream_command() opens a mail stream to external command, /* and receives queue ID information from the command. The result /* is a null pointer when the initial handshake fails. The command /* is given to the shell only when necessary. At finish time, the /* command is expected to send a completion status. /* /* mail_stream_service() opens a mail stream to Postfix service, /* and receives queue ID information from the command. The result /* is a null pointer when the initial handshake fails. At finish /* time, the daemon is expected to send a completion status. /* /* mail_stream_cleanup() cancels the operation that was started with /* any of the mail_stream_xxx() routines, and destroys the argument. /* It is up to the caller to remove incomplete file objects. /* /* mail_stream_finish() completes the operation that was started with /* any of the mail_stream_xxx() routines, and destroys the argument. /* The result is any of the status codes defined in <cleanup_user.h>. /* It is up to the caller to remove incomplete file objects. /* The why argument can be a null pointer. /* /* mail_stream_ctl() selectively overrides information that /* was specified with mail_stream_file(); none of the attributes /* are applicable for other mail stream types. The arguments /* are a list macros with arguments, terminated with /* CA_MAIL_STREAM_CTL_END which has none. The following lists /* the macros and the types of the corresponding arguments. /* .IP "CA_MAIL_STREAM_CTL_QUEUE(const char *)" /* The argument specifies an alternate destination queue. The /* queue file is moved to the specified queue before the call /* returns. Failure to rename the queue file results in a fatal /* error. /* .IP "CA_MAIL_STREAM_CTL_CLASS(const char *)" /* The argument specifies an alternate trigger class. /* .IP "CA_MAIL_STREAM_CTL_SERVICE(const char *)" /* The argument specifies an alternate trigger service. /* .IP "CA_MAIL_STREAM_CTL_MODE(int)" /* The argument specifies alternate permissions that override /* the permissions specified with mail_stream_file(). /* .IP "CA_MAIL_STREAM_CTL_DELAY(int)" /* Attempt to postpone initial delivery by advancing the queue /* file modification time stamp by this amount. This has /* effect only within the deferred mail queue. /* This feature may have no effect with remote file systems. /* 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.3Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-08-08)
¤
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.