.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" 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" '' '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 turned on, 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. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" 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 "Net::SMTP::TLS::ButMaintained 3pm" .TH Net::SMTP::TLS::ButMaintained 3pm "2013-12-04" "perl v5.14.2" "User Contributed Perl Documentation" .\" 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" Net::SMTP::TLS::ButMaintained \- An SMTP client supporting TLS and AUTH .SH "VERSION" .IX Header "VERSION" version 0.17 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 10 \& use Net::SMTP::TLS::ButMaintained; \& my $mailer = Net::SMTP::TLS::ButMaintained\->new( \& \*(Aqyour.mail.host\*(Aq, \& Hello => \*(Aqsome.host.name\*(Aq, \& Port => 25, #redundant \& User => \*(Aqemailguy\*(Aq, \& Password=> \*(Aqs3cr3t\*(Aq); \& $mailer\->mail(\*(Aqemailguy@your.mail.host\*(Aq); \& $mailer\->to(\*(Aqsomeonecool@somewhere.else\*(Aq); \& $mailer\->data; \& $mailer\->datasend("Sent thru TLS!"); \& $mailer\->dataend; \& $mailer\->quit; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBNet::SMTP::TLS::ButMaintained\fR is forked from Net::SMTP::TLS. blame \f(CW\*(C`Evan Carroll\*(C'\fR for the idea. :) .PP \&\fBNet::SMTP::TLS::ButMaintained\fR is a \s-1TLS\s0 and \s-1AUTH\s0 capable \s-1SMTP\s0 client which offers an interface that users will find familiar from Net::SMTP. \fBNet::SMTP::TLS::ButMaintained\fR implements a subset of the methods provided by that module, but certainly not (yet) a complete mirror image of that \s-1API\s0. .PP The methods supported by \fBNet::SMTP::TLS::ButMaintained\fR are used in the above example. Though self explanatory for the most part, please see the perldoc for Net::SMTP if you are unclear. .PP The differences in the methods provided are as follows: .Sp .RS 4 The \fImail\fR method does not take the options list taken by Net::SMTP .Sp The \fIto\fR method also does not take options, and is the only method available to set the recipient (unlike the many synonyms provided by Net::SMTP). .Sp The constructor takes a limited number of Net::SMTP's parameters. The constructor for \fBNet::SMTP::TLS::ButMaintained\fR takes the following (in addition to the hostname of the mail server, which must be the first parameter and is not explicitly named): .Sp .RS 4 NoTLS \- In the unlikely event that you need to use this class to perform non-TLS \s-1SMTP\s0 (you ought to be using Net::SMTP itself for that...), this will turn off \s-1TLS\s0 when supplied with a true value. This will most often cause an error related to authentication when used on a server that requires \s-1TLS\s0 .Sp Hello \- hostname used in the \s-1EHLO\s0 command .Sp Port \- port to connect to the \s-1SMTP\s0 service (defaults to 25) .Sp Timeout \- Timeout for inital socket connection (defaults to 5, passed directly to IO::Socket::INET) .Sp User \- username for \s-1SMTP\s0 \s-1AUTH\s0 .Sp Password \- password for \s-1SMTP\s0 \s-1AUTH\s0 .RE .RE .RS 4 .RE .SS "\s-1TLS\s0 and AUTHentication" .IX Subsection "TLS and AUTHentication" During construction of an \fBNet::SMTP::TLS::ButMaintained\fR instance, the full login process will occur. This involves first sending \s-1EHLO\s0 to the server, then initiating a \s-1TLS\s0 session through \s-1STARTTLS\s0. Once this is complete, the module will attempt to login using the credentials supplied by the constructor, if such credentials have been supplied. .PP The \s-1AUTH\s0 method will depend on the features returned by the server after the \s-1EHLO\s0 command. Based on that, \s-1CRAM\-MD5\s0 will be used if available, followed by \s-1LOGIN\s0, followed by \s-1PLAIN\s0. Please note that \s-1LOGIN\s0 is the only method of authentication that has been tested. \s-1CRAM\-MD5\s0 and \s-1PLAIN\s0 login functionality was taken directly from the script mentioned in the acknowledgements section, however, I have not tested them personally. .SS "\s-1ERROR\s0 \s-1HANDLING\s0" .IX Subsection "ERROR HANDLING" This module will croak in the event of an \s-1SMTP\s0 error. Should you wish to handle this gracefully in your application, you may wrap your mail transmission in an eval {} block and check $@ afterward. .SS "\s-1ACKNOWLEDGEMENTS\s0" .IX Subsection "ACKNOWLEDGEMENTS" This code was blatantly plagiarized from Michal Ludvig's smtp\-client.pl script. See for his excellent work. .PP Improvements courtesy of Tomek Zielinski .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Alexander Christian Westholm .IP "\(bu" 4 Fayland Lam .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2011 by Alexander Christian Westholm, Fayland Lam. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.