.\" Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) .\" .\" 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 .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "Net::SMTP::TLS 3pm" .TH Net::SMTP::TLS 3pm "2017-01-26" "perl v5.24.1" "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 \- An SMTP client supporting TLS and AUTH .SH "VERSION" .IX Header "VERSION" Version 0.12 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 10 \& use Net::SMTP::TLS; \& my $mailer = new Net::SMTP::TLS( \& \*(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\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\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\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\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 initial socket connection (defaults to 5, passed directly to IO::Socket::INET) .Sp User \- username for \s-1SMTP AUTH\s0 .Sp Password \- password for \s-1SMTP AUTH\s0 .RE .RE .RS 4 .RE .SH "TLS and AUTHentication" .IX Header "TLS and AUTHentication" During construction of an \fBNet::SMTP::TLS\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. .SH "ERROR HANDLING" .IX Header "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. .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" This code was blatantly plagiarized from Michal Ludvig's smtp\-client.pl script. See for his excellent work. .SH "AUTHOR" .IX Header "AUTHOR" Alexander Christian Westholm, awestholm at verizon dawt net .PP Improvements courtesy of Tomek Zielinski