.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Sympa::Spool::Outgoing 3Sympa" .TH Sympa::Spool::Outgoing 3Sympa "2020-12-30" "6.2.58" "sympa 6.2.58" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Sympa::Spool::Outgoing \- Spool for outgoing messages .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Sympa::Spool::Outgoing; \& my $bulk = Sympa::Spool::Outgoing\->new; \& \& $bulk\->store($message, [\*(Aquser@dom.ain\*(Aq, \*(Aquser@other.dom.ain\*(Aq]); \& \& my ($message, $handle) = $bulk\->next; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Sympa::Spool::Outgoing implements the spool for outgoing messages. .SS "Methods" .IX Subsection "Methods" .IP "new ( )" 4 .IX Item "new ( )" \&\fIConstructor\fR. Creates new instance of Sympa::Spool::Outgoing. .IP "next ( [ no_filter => 1 ] )" 4 .IX Item "next ( [ no_filter => 1 ] )" \&\fIInstance method\fR. Gets next packet to process, order is controlled by message priority, then by packet priority, then by delivery date, then by reception date. Packets with future delivery date are ignored (if \f(CW\*(C`no_filter\*(C'\fR option is \fInot\fR set). Packet will be locked to prevent multiple processing of a single packet. .Sp Parameters: .Sp None. .Sp Returns: .Sp Two-elements list of Sympa::Message instance and filehandle locking a packet. .ie n .IP "quarantine ( $handle )" 4 .el .IP "quarantine ( \f(CW$handle\fR )" 4 .IX Item "quarantine ( $handle )" \&\fIInstance method\fR. Quarantines a packet. Packet will be moved into bad/ subdirectory of the spool. .Sp Parameter: .RS 4 .ie n .IP "$handle" 4 .el .IP "\f(CW$handle\fR" 4 .IX Item "$handle" Filehandle, Sympa::LockedFile instance, locking packet. .RE .RS 4 .Sp Returns: .Sp True value if packet could be quarantined. Otherwise false value. .RE .ie n .IP "remove ( $handle )" 4 .el .IP "remove ( \f(CW$handle\fR )" 4 .IX Item "remove ( $handle )" \&\fIInstance method\fR. Removes a packet. If the packet is the last one of bulk sending, corresponding message will also be removed from spool. .Sp Parameter: .RS 4 .ie n .IP "$handle" 4 .el .IP "\f(CW$handle\fR" 4 .IX Item "$handle" Filehandle, Sympa::LockedFile instance, locking packet. .RE .RS 4 .Sp Returns: .Sp True value if packet could be removed. Otherwise false value. .RE .ie n .IP "store ( $message, $rcpt, [ original => $original ], [ tag => $tag ] )" 4 .el .IP "store ( \f(CW$message\fR, \f(CW$rcpt\fR, [ original => \f(CW$original\fR ], [ tag => \f(CW$tag\fR ] )" 4 .IX Item "store ( $message, $rcpt, [ original => $original ], [ tag => $tag ] )" \&\fIInstance method\fR. Stores the message into message spool. Recipients will be split into multiple packets and stored into packet spool. .Sp Parameters: .RS 4 .ie n .IP "$message" 4 .el .IP "\f(CW$message\fR" 4 .IX Item "$message" Message to be stored. Following attributes and metadata are referred: .RS 4 .IP "{envelope_sender}" 4 .IX Item "{envelope_sender}" \&\s-1SMTP \*(L"MAIL FROM:\*(R"\s0 field. .IP "{priority}" 4 .IX Item "{priority}" Message priority. .IP "{packet_priority}" 4 .IX Item "{packet_priority}" Packet priority, assigned as \f(CW\*(C`sympa_packet_priority\*(C'\fR parameter by each robot. .IP "{date}" 4 .IX Item "{date}" Unix time when the message would be delivered. .IP "{time}" 4 .IX Item "{time}" Unix time in floating point number when the message was stored. .RE .RS 4 .RE .ie n .IP "$rcpt" 4 .el .IP "\f(CW$rcpt\fR" 4 .IX Item "$rcpt" Scalar, scalarref or arrayref, for \s-1SMTP \*(L"RCPT TO:\*(R"\s0 field(s). .ie n .IP "original => $original" 4 .el .IP "original => \f(CW$original\fR" 4 .IX Item "original => $original" If the message was decrypted, stores original encrypted form. .ie n .IP "tag => $tag" 4 .el .IP "tag => \f(CW$tag\fR" 4 .IX Item "tag => $tag" \&\s-1TBD.\s0 .RE .RS 4 .Sp Returns: .Sp If storing succeeded, marshalled metadata (file name) of the message. Otherwise \f(CW\*(C`undef\*(C'\fR. .RE .IP "too_much_remaining_packets ( )" 4 .IX Item "too_much_remaining_packets ( )" \&\fIInstance method\fR. Returns true value if the number of remaining packets exceeds the value of the \f(CW\*(C`bulk_fork_threshold\*(C'\fR config parameter. .SH "CONFIGURATION PARAMETERS" .IX Header "CONFIGURATION PARAMETERS" Following site configuration parameters in sympa.conf will be referred. .IP "queuebulk" 4 .IX Item "queuebulk" Directory path of outgoing spool. .Sp Note: Named such by historical reason. Don't confuse with \f(CW\*(C`queueoutgoing\*(C'\fR for archive spool (see Sympa::Spool::Archive). .IP "umask" 4 .IX Item "umask" The umask to make directory. .SH "CAVEAT" .IX Header "CAVEAT" Sympa::Spool::Outgoing is not a real subsclass of Sympa::Spool. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBbulk\fR\|(8), Sympa::Mailer, Sympa::Message. .SH "HISTORY" .IX Header "HISTORY" Bulk module initially written by Serge Aumont appeared on Sympa 6.0. It used database tables to store and fetch packets and messages. .PP Support for \s-1DKIM\s0 signing was added on Sympa 6.1. .PP Rewritten Sympa::Bulk appeared on Sympa 6.2, using spools based on filesystem. It was renamed to Sympa::Spool::Outgoing on Sympa 6.2.45b.3.