.rn '' }` ''' $RCSfile: Mail::Mailer.3,v $$Revision: 1.1.1.1 $$Date: 2000/07/26 14:41:00 $ ''' ''' $Log: Mail::Mailer.3,v $ ''' Revision 1.1.1.1 2000/07/26 14:41:00 audris ''' Personal Pages ''' ''' .de Sh .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp .if t .sp .5v .if n .sp .. .de Ip .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .de Vb .ft CW .nf .ne \\$1 .. .de Ve .ft R .fi .. ''' ''' ''' Set up \*(-- to give an unbreakable dash; ''' string Tr holds user defined translation string. ''' Bell System Logo is used as a dummy character. ''' .tr \(*W-|\(bv\*(Tr .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" "" ''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of ''' \*(L" and \*(R", except that they are used on ".xx" lines, ''' such as .IP and .SH, which do another additional levels of ''' double-quote interpretation .ds M" """ .ds S" """ .ds N" """"" .ds T" """"" .ds L' ' .ds R' ' .ds M' ' .ds S' ' .ds N' ' .ds T' ' 'br\} .el\{\ .ds -- \(em\| .tr \*(Tr .ds L" `` .ds R" '' .ds M" `` .ds S" '' .ds N" `` .ds T" '' .ds L' ` .ds R' ' .ds M' ` .ds S' ' .ds N' ` .ds T' ' .ds PI \(*p 'br\} .\" If the F register is turned on, we'll generate .\" index entries out stderr for the following things: .\" TH Title .\" SH Header .\" Sh Subsection .\" Ip Item .\" X<> Xref (embedded .\" Of course, you have to process the output yourself .\" in some meaninful fashion. .if \nF \{ .de IX .tm Index:\\$1\t\\n%\t"\\$2" .. .nr % 0 .rr F .\} .TH Mail::Mailer 3 "perl 5.005, patch 02" "31/Mar/99" "User Contributed Perl Documentation" .UC .if n .hy 0 .if n .na .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .de CQ \" put $1 in typewriter font .ft CW 'if n "\c 'if t \\&\\$1\c 'if n \\&\\$1\c 'if n \&" \\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 '.ft R .. .\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 . \" AM - accent mark definitions .bd B 3 . \" 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 ? ? . ds ! ! . ds / . ds q .\} .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 ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' . ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' . ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' .\} . \" 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 v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] .ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' .ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' .ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] .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 .ds oe o\h'-(\w'o'u*4/10)'e .ds Oe O\h'-(\w'O'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 v \h'-1'\o'\(aa\(ga' . ds _ \h'-1'^ . ds . \h'-1'. . ds 3 3 . 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 . ds oe oe . ds Oe OE .\} .rm #[ #] #H #V #F C .SH "NAME" Mail::Mailer \- Simple interface to electronic mailing mechanisms .SH "SYNOPSIS" .PP .Vb 2 \& use Mail::Mailer; \& use Mail::Mailer qw(mail); .Ve .Vb 1 \& $mailer = new Mail::Mailer; .Ve .Vb 1 \& $mailer = new Mail::Mailer $type, @args; .Ve .Vb 1 \& $mailer->open(\e%headers); .Ve .Vb 1 \& print $mailer $body; .Ve .Vb 1 \& $mailer->close; .Ve .SH "DESCRIPTION" Sends mail using any of the built-in methods. You can alter the behaviour of a method by passing \f(CW$command\fR to the \f(CWnew\fR method. .Ip "\f(CWmail\fR" 4 Use the Unix system \f(CWmail\fR program to deliver the mail. \f(CW$command\fR is the path to \f(CWmail\fR. Mail::Mailer will search for \f(CWmailx\fR, \f(CWMail\fR and \f(CWmail\fR (in this order). .Ip "\f(CWsendmail\fR" 4 Use the \f(CWsendmail\fR program to deliver the mail. \f(CW$command\fR is the path to \f(CWsendmail\fR. .Ip "\f(CWsmtp\fR" 4 Use the \f(CWsmtp\fR protocol via Net::\s-1SMTP\s0 to deliver the mail. The server to use can be specified in \f(CW@args\fR with .Sp .Vb 1 \& $mailer = new Mail::Mailer 'smtp', Server => $server; .Ve .Ip "\f(CWtest\fR" 4 Used for debugging, this calls \f(CW/bin/echo\fR to display the data. No mail is ever sent. \f(CW$command\fR is ignored. .PP \f(CWMail::Mailer\fR will search for executables in the above order. The default mailer will be the first one found. .Sh "\s-1ARGUMENTS\s0" \f(CWnew\fR can optionally be given a \f(CW$command\fR and \f(CW$type\fR. \f(CW$type\fR is one \f(CWsendmail\fR, \f(CWmail\fR, ... given above. The meaning of \f(CW$command\fR depends on \f(CW$type\fR. .PP \f(CWopen\fR is given a reference to a hash. The hash consists of key and value pairs, the key being the name of the header field (eg, \f(CWTo\fR), and the value being the corresponding contents of the header field. The value can either be a scalar (eg, \f(CWgnat@frii.com\fR) or a reference to an array of scalars (\f(CWeg, ['gnat@frii.com', 'Tim.Bunce@ig.co.uk']\fR). .SH "TO DO" Assist formatting of fields in ...::rfc822:send_headers to ensure valid in the face of newlines and longlines etc. .PP Secure all forms of \fIsend_headers()\fR against hacker attack and invalid contents. Especially \*(L"\en~...\*(R" in ...::mail::send_headers. .SH "ENVIRONMENT VARIABLES" .Ip "\s-1PERL_MAILERS\s0" 4 Augments/override the build in choice for binary used to send out our mail messages. .Sp Format: .Sp .Vb 1 \& "type1:mailbinary1;mailbinary2;...:type2:mailbinaryX;...:..." .Ve Example: assume you want you use private sendmail binary instead of mailx, one could set \f(CWPERL_MAILERS\fR to: .Sp .Vb 1 \& "mail:/does/not/exists:sendmail:$HOME/test/bin/sendmail" .Ve .SH "SEE ALSO" Mail::Send .SH "AUTHORS" Maintained by Graham Barr <\fIgbarr@pobox.com\fR> .PP Original code written by Tim Bunce <\fITim.Bunce@ig.co.uk\fR>, with a kick start from Graham Barr <\fIgbarr@pobox.com\fR>. With contributions by Gerard Hickey <\fIhickey@ctron.com\fR> Small fix and documentation by Nathan Torkington <\fIgnat@frii.com\fR>. .PP For support please contact comp.lang.perl.misc or Graham Barr <\fIgbarr@pobox.com\fR> .rn }` '' .IX Title "Mail::Mailer 3" .IX Name "Mail::Mailer - Simple interface to electronic mailing mechanisms" .IX Header "NAME" .IX Header "SYNOPSIS" .IX Header "DESCRIPTION" .IX Item "\f(CWmail\fR" .IX Item "\f(CWsendmail\fR" .IX Item "\f(CWsmtp\fR" .IX Item "\f(CWtest\fR" .IX Subsection "\s-1ARGUMENTS\s0" .IX Header "TO DO" .IX Header "ENVIRONMENT VARIABLES" .IX Item "\s-1PERL_MAILERS\s0" .IX Header "SEE ALSO" .IX Header "AUTHORS"