Lines Matching defs:bounce

23 /*	(send bounce message) request.
30 /* When a bounce is sent, the sender address is the empty
31 /* address. When a bounce bounces, an optional double bounce
33 /* with as sender address the double bounce address.
38 /* bounce(3) basic bounce service client interface
75 #include <bounce.h>
84 /* bounce_notify_service - send a bounce */
94 VSTREAM *bounce;
102 * Initialize. Open queue file, bounce log, etc.
104 * XXX DSN The bounce service produces RFC 3464-style "failed mail" reports
107 * 1 - bounce: this file is used for RFC 3464-style reports of permanent
108 * delivery errors by the bounce(8) service. This reports to the sender
115 * 2a) RFC 3464-style "mail is too old" reports by the bounce(8) service.
141 * single bounce (a non-delivery notification to the message originator),
142 * the sender address is the empty string. For a double bounce (typically
143 * a failed single bounce, or a postmaster notification that was produced
145 * var_double_bounce_sender configuration variable. When a double bounce
147 * bounce message.
151 * Double bounce failed. Never send a triple bounce.
155 * recognize the double-bounce recipient address and discard mail, or
156 * every delivery agent must recognize the double-bounce sender address
166 * Single bounce failed. Optionally send a double bounce to postmaster,
177 if ((bounce = post_mail_fopen_nowait(mail_addr_double_bounce(),
184 * Double bounce to Postmaster. This is the last opportunity
186 * reason for the bounce, and the headers of the original
190 if (bounce_header(bounce, bounce_info, postmaster,
192 && (count = bounce_diagnostic_log(bounce, bounce_info,
194 && bounce_header_dsn(bounce, bounce_info) == 0
195 && bounce_diagnostic_dsn(bounce, bounce_info,
197 bounce_original(bounce, bounce_info, DSN_RET_FULL);
198 bounce_status = post_mail_fclose(bounce);
204 (void) vstream_fclose(bounce);
213 * Non-bounce failed. Send a single bounce to the sender, subject to DSN
217 if ((bounce = post_mail_fopen_nowait(NULL_SENDER, recipient,
223 * Send the bounce message header, some boilerplate text that
225 * reason for the bounce, and a copy of the original message.
228 if (bounce_header(bounce, bounce_info, recipient,
230 && bounce_boilerplate(bounce, bounce_info) == 0
231 && (count = bounce_diagnostic_log(bounce, bounce_info,
233 && bounce_header_dsn(bounce, bounce_info) == 0
234 && bounce_diagnostic_dsn(bounce, bounce_info,
236 bounce_original(bounce, bounce_info, dsn_ret ?
238 bounce_status = post_mail_fclose(bounce);
244 (void) vstream_fclose(bounce);
255 * retransmit the bounce that we just generated, just log a warning.
263 * Send the text with reason for the bounce, and the headers of
266 * don't retransmit the bounce that we just generated, just log a
270 if ((bounce = post_mail_fopen_nowait(mail_addr_double_bounce(),
276 if (bounce_header(bounce, bounce_info, postmaster,
278 && (count = bounce_diagnostic_log(bounce, bounce_info,
280 && bounce_header_dsn(bounce, bounce_info) == 0
281 && bounce_diagnostic_dsn(bounce, bounce_info,
283 bounce_original(bounce, bounce_info, DSN_RET_HDRS);
284 postmaster_status = post_mail_fclose(bounce);
290 (void) vstream_fclose(bounce);
308 * Examine the completion status. Delete the bounce log file only when
309 * the bounce was posted successfully, and only if we are bouncing for