Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / man / man3 / Net::SMTP.3
CommitLineData
920dae64
AT
1.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "Net::SMTP 3"
132.TH Net::SMTP 3 "2001-09-21" "perl v5.8.8" "Perl Programmers Reference Guide"
133.SH "NAME"
134Net::SMTP \- Simple Mail Transfer Protocol Client
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 1
138\& use Net::SMTP;
139.Ve
140.PP
141.Vb 3
142\& # Constructors
143\& $smtp = Net::SMTP->new('mailhost');
144\& $smtp = Net::SMTP->new('mailhost', Timeout => 60);
145.Ve
146.SH "DESCRIPTION"
147.IX Header "DESCRIPTION"
148This module implements a client interface to the \s-1SMTP\s0 and \s-1ESMTP\s0
149protocol, enabling a perl5 application to talk to \s-1SMTP\s0 servers. This
150documentation assumes that you are familiar with the concepts of the
151\&\s-1SMTP\s0 protocol described in \s-1RFC821\s0.
152.PP
153A new Net::SMTP object must be created with the \fInew\fR method. Once
154this has been done, all \s-1SMTP\s0 commands are accessed through this object.
155.PP
156The Net::SMTP class is a subclass of Net::Cmd and IO::Socket::INET.
157.SH "EXAMPLES"
158.IX Header "EXAMPLES"
159This example prints the mail domain name of the \s-1SMTP\s0 server known as mailhost:
160.PP
161.Vb 1
162\& #!/usr/local/bin/perl -w
163.Ve
164.PP
165.Vb 1
166\& use Net::SMTP;
167.Ve
168.PP
169.Vb 3
170\& $smtp = Net::SMTP->new('mailhost');
171\& print $smtp->domain,"\en";
172\& $smtp->quit;
173.Ve
174.PP
175This example sends a small message to the postmaster at the \s-1SMTP\s0 server
176known as mailhost:
177.PP
178.Vb 1
179\& #!/usr/local/bin/perl -w
180.Ve
181.PP
182.Vb 1
183\& use Net::SMTP;
184.Ve
185.PP
186.Vb 1
187\& $smtp = Net::SMTP->new('mailhost');
188.Ve
189.PP
190.Vb 2
191\& $smtp->mail($ENV{USER});
192\& $smtp->to('postmaster');
193.Ve
194.PP
195.Vb 5
196\& $smtp->data();
197\& $smtp->datasend("To: postmaster\en");
198\& $smtp->datasend("\en");
199\& $smtp->datasend("A simple test message\en");
200\& $smtp->dataend();
201.Ve
202.PP
203.Vb 1
204\& $smtp->quit;
205.Ve
206.SH "CONSTRUCTOR"
207.IX Header "CONSTRUCTOR"
208.IP "new ( [ \s-1HOST\s0 ] [, \s-1OPTIONS\s0 ] )" 4
209.IX Item "new ( [ HOST ] [, OPTIONS ] )"
210This is the constructor for a new Net::SMTP object. \f(CW\*(C`HOST\*(C'\fR is the
211name of the remote host to which an \s-1SMTP\s0 connection is required.
212.Sp
213\&\f(CW\*(C`HOST\*(C'\fR is optional. If \f(CW\*(C`HOST\*(C'\fR is not given then it may instead be
214passed as the \f(CW\*(C`Host\*(C'\fR option described below. If neither is given then
215the \f(CW\*(C`SMTP_Hosts\*(C'\fR specified in \f(CW\*(C`Net::Config\*(C'\fR will be used.
216.Sp
217\&\f(CW\*(C`OPTIONS\*(C'\fR are passed in a hash like fashion, using key and value pairs.
218Possible options are:
219.Sp
220\&\fBHello\fR \- \s-1SMTP\s0 requires that you identify yourself. This option
221specifies a string to pass as your mail domain. If not given localhost.localdomain
222will be used.
223.Sp
224\&\fBHost\fR \- \s-1SMTP\s0 host to connect to. It may be a single scalar, as defined for
225the \f(CW\*(C`PeerAddr\*(C'\fR option in IO::Socket::INET, or a reference to
226an array with hosts to try in turn. The \*(L"host\*(R" method will return the value
227which was used to connect to the host.
228.Sp
229\&\fBLocalAddr\fR and \fBLocalPort\fR \- These parameters are passed directly
230to IO::Socket to allow binding the socket to a local port.
231.Sp
232\&\fBTimeout\fR \- Maximum time, in seconds, to wait for a response from the
233\&\s-1SMTP\s0 server (default: 120)
234.Sp
235\&\fBExactAddresses\fR \- If true the all \s-1ADDRESS\s0 arguments must be as
236defined by \f(CW\*(C`addr\-spec\*(C'\fR in \s-1RFC2822\s0. If not given, or false, then
237Net::SMTP will attempt to extract the address from the value passed.
238.Sp
239\&\fBDebug\fR \- Enable debugging information
240.Sp
241Example:
242.Sp
243.Vb 5
244\& $smtp = Net::SMTP->new('mailhost',
245\& Hello => 'my.mail.domain'
246\& Timeout => 30,
247\& Debug => 1,
248\& );
249.Ve
250.Sp
251.Vb 7
252\& # the same
253\& $smtp = Net::SMTP->new(
254\& Host => 'mailhost',
255\& Hello => 'my.mail.domain'
256\& Timeout => 30,
257\& Debug => 1,
258\& );
259.Ve
260.Sp
261.Vb 5
262\& # Connect to the default server from Net::config
263\& $smtp = Net::SMTP->new(
264\& Hello => 'my.mail.domain'
265\& Timeout => 30,
266\& );
267.Ve
268.SH "METHODS"
269.IX Header "METHODS"
270Unless otherwise stated all methods return either a \fItrue\fR or \fIfalse\fR
271value, with \fItrue\fR meaning that the operation was a success. When a method
272states that it returns a value, failure will be returned as \fIundef\fR or an
273empty list.
274.IP "banner ()" 4
275.IX Item "banner ()"
276Returns the banner message which the server replied with when the
277initial connection was made.
278.IP "domain ()" 4
279.IX Item "domain ()"
280Returns the domain that the remote \s-1SMTP\s0 server identified itself as during
281connection.
282.IP "hello ( \s-1DOMAIN\s0 )" 4
283.IX Item "hello ( DOMAIN )"
284Tell the remote server the mail domain which you are in using the \s-1EHLO\s0
285command (or \s-1HELO\s0 if \s-1EHLO\s0 fails). Since this method is invoked
286automatically when the Net::SMTP object is constructed the user should
287normally not have to call it manually.
288.IP "host ()" 4
289.IX Item "host ()"
290Returns the value used by the constructor, and passed to IO::Socket::INET,
291to connect to the host.
292.IP "etrn ( \s-1DOMAIN\s0 )" 4
293.IX Item "etrn ( DOMAIN )"
294Request a queue run for the \s-1DOMAIN\s0 given.
295.IP "auth ( \s-1USERNAME\s0, \s-1PASSWORD\s0 )" 4
296.IX Item "auth ( USERNAME, PASSWORD )"
297Attempt \s-1SASL\s0 authentication.
298.IP "mail ( \s-1ADDRESS\s0 [, \s-1OPTIONS\s0] )" 4
299.IX Item "mail ( ADDRESS [, OPTIONS] )"
300.PD 0
301.IP "send ( \s-1ADDRESS\s0 )" 4
302.IX Item "send ( ADDRESS )"
303.IP "send_or_mail ( \s-1ADDRESS\s0 )" 4
304.IX Item "send_or_mail ( ADDRESS )"
305.IP "send_and_mail ( \s-1ADDRESS\s0 )" 4
306.IX Item "send_and_mail ( ADDRESS )"
307.PD
308Send the appropriate command to the server \s-1MAIL\s0, \s-1SEND\s0, \s-1SOML\s0 or \s-1SAML\s0. \f(CW\*(C`ADDRESS\*(C'\fR
309is the address of the sender. This initiates the sending of a message. The
310method \f(CW\*(C`recipient\*(C'\fR should be called for each address that the message is to
311be sent to.
312.Sp
313The \f(CW\*(C`mail\*(C'\fR method can some additional \s-1ESMTP\s0 \s-1OPTIONS\s0 which is passed
314in hash like fashion, using key and value pairs. Possible options are:
315.Sp
316.Vb 6
317\& Size => <bytes>
318\& Return => "FULL" | "HDRS"
319\& Bits => "7" | "8" | "binary"
320\& Transaction => <ADDRESS>
321\& Envelope => <ENVID>
322\& XVERP => 1
323.Ve
324.Sp
325The \f(CW\*(C`Return\*(C'\fR and \f(CW\*(C`Envelope\*(C'\fR parameters are used for \s-1DSN\s0 (Delivery
326Status Notification).
327.IP "reset ()" 4
328.IX Item "reset ()"
329Reset the status of the server. This may be called after a message has been
330initiated, but before any data has been sent, to cancel the sending of the
331message.
332.IP "recipient ( \s-1ADDRESS\s0 [, \s-1ADDRESS\s0, [...]] [, \s-1OPTIONS\s0 ] )" 4
333.IX Item "recipient ( ADDRESS [, ADDRESS, [...]] [, OPTIONS ] )"
334Notify the server that the current message should be sent to all of the
335addresses given. Each address is sent as a separate command to the server.
336Should the sending of any address result in a failure then the process is
337aborted and a \fIfalse\fR value is returned. It is up to the user to call
338\&\f(CW\*(C`reset\*(C'\fR if they so desire.
339.Sp
340The \f(CW\*(C`recipient\*(C'\fR method can also pass additional case-sensitive \s-1OPTIONS\s0 as an
341anonymous hash using key and value pairs. Possible options are:
342.Sp
343.Vb 2
344\& Notify => ['NEVER'] or ['SUCCESS','FAILURE','DELAY'] (see below)
345\& SkipBad => 1 (to ignore bad addresses)
346.Ve
347.Sp
348If \f(CW\*(C`SkipBad\*(C'\fR is true the \f(CW\*(C`recipient\*(C'\fR will not return an error when a bad
349address is encountered and it will return an array of addresses that did
350succeed.
351.Sp
352.Vb 5
353\& $smtp->recipient($recipient1,$recipient2); # Good
354\& $smtp->recipient($recipient1,$recipient2, { SkipBad => 1 }); # Good
355\& $smtp->recipient($recipient1,$recipient2, { Notify => ['FAILURE','DELAY'], SkipBad => 1 }); # Good
356\& @goodrecips=$smtp->recipient(@recipients, { Notify => ['FAILURE'], SkipBad => 1 }); # Good
357\& $smtp->recipient("$recipient,$recipient2"); # BAD
358.Ve
359.Sp
360Notify is used to request Delivery Status Notifications (DSNs), but your
361\&\s-1SMTP/ESMTP\s0 service may not respect this request depending upon its version and
362your site's \s-1SMTP\s0 configuration.
363.Sp
364Leaving out the Notify option usually defaults an \s-1SMTP\s0 service to its default
365behavior equivalent to ['\s-1FAILURE\s0'] notifications only, but again this may be
366dependent upon your site's \s-1SMTP\s0 configuration.
367.Sp
368The \s-1NEVER\s0 keyword must appear by itself if used within the Notify option and \*(L"requests
369that a \s-1DSN\s0 not be returned to the sender under any conditions.\*(R"
370.Sp
371.Vb 1
372\& {Notify => ['NEVER']}
373.Ve
374.Sp
375.Vb 1
376\& $smtp->recipient(@recipients, { Notify => ['NEVER'], SkipBad => 1 }); # Good
377.Ve
378.Sp
379You may use any combination of these three values '\s-1SUCCESS\s0','\s-1FAILURE\s0','\s-1DELAY\s0' in
380the anonymous array reference as defined by \s-1RFC3461\s0 (see http://rfc.net/rfc3461.html
381for more information. Note: quotations in this topic from same.).
382.Sp
383A Notify parameter of '\s-1SUCCESS\s0' or '\s-1FAILURE\s0' \*(L"requests that a \s-1DSN\s0 be issued on
384successful delivery or delivery failure, respectively.\*(R"
385.Sp
386A Notify parameter of '\s-1DELAY\s0' \*(L"indicates the sender's willingness to receive
387delayed DSNs. Delayed DSNs may be issued if delivery of a message has been
388delayed for an unusual amount of time (as determined by the Message Transfer
389Agent (\s-1MTA\s0) at which the message is delayed), but the final delivery status
390(whether successful or failure) cannot be determined. The absence of the \s-1DELAY\s0
391keyword in a \s-1NOTIFY\s0 parameter requests that a \*(R"delayed\*(L" \s-1DSN\s0 \s-1NOT\s0 be issued under
392any conditions.\*(R"
393.Sp
394.Vb 1
395\& {Notify => ['SUCCESS','FAILURE','DELAY']}
396.Ve
397.Sp
398.Vb 1
399\& $smtp->recipient(@recipients, { Notify => ['FAILURE','DELAY'], SkipBad => 1 }); # Good
400.Ve
401.IP "to ( \s-1ADDRESS\s0 [, \s-1ADDRESS\s0 [...]] )" 4
402.IX Item "to ( ADDRESS [, ADDRESS [...]] )"
403.PD 0
404.IP "cc ( \s-1ADDRESS\s0 [, \s-1ADDRESS\s0 [...]] )" 4
405.IX Item "cc ( ADDRESS [, ADDRESS [...]] )"
406.IP "bcc ( \s-1ADDRESS\s0 [, \s-1ADDRESS\s0 [...]] )" 4
407.IX Item "bcc ( ADDRESS [, ADDRESS [...]] )"
408.PD
409Synonyms for \f(CW\*(C`recipient\*(C'\fR.
410.IP "data ( [ \s-1DATA\s0 ] )" 4
411.IX Item "data ( [ DATA ] )"
412Initiate the sending of the data from the current message.
413.Sp
414\&\f(CW\*(C`DATA\*(C'\fR may be a reference to a list or a list. If specified the contents
415of \f(CW\*(C`DATA\*(C'\fR and a termination string \f(CW".\er\en"\fR is sent to the server. And the
416result will be true if the data was accepted.
417.Sp
418If \f(CW\*(C`DATA\*(C'\fR is not specified then the result will indicate that the server
419wishes the data to be sent. The data must then be sent using the \f(CW\*(C`datasend\*(C'\fR
420and \f(CW\*(C`dataend\*(C'\fR methods described in Net::Cmd.
421.IP "expand ( \s-1ADDRESS\s0 )" 4
422.IX Item "expand ( ADDRESS )"
423Request the server to expand the given address Returns an array
424which contains the text read from the server.
425.IP "verify ( \s-1ADDRESS\s0 )" 4
426.IX Item "verify ( ADDRESS )"
427Verify that \f(CW\*(C`ADDRESS\*(C'\fR is a legitimate mailing address.
428.Sp
429Most sites usually disable this feature in their \s-1SMTP\s0 service configuration.
430Use \*(L"Debug => 1\*(R" option under \fInew()\fR to see if disabled.
431.ie n .IP "help ( [ $subject ] )" 4
432.el .IP "help ( [ \f(CW$subject\fR ] )" 4
433.IX Item "help ( [ $subject ] )"
434Request help text from the server. Returns the text or undef upon failure
435.IP "quit ()" 4
436.IX Item "quit ()"
437Send the \s-1QUIT\s0 command to the remote \s-1SMTP\s0 server and close the socket connection.
438.SH "ADDRESSES"
439.IX Header "ADDRESSES"
440Net::SMTP attempts to \s-1DWIM\s0 with addresses that are passed. For
441example an application might extract The From: line from an email
442and pass that to \fImail()\fR. While this may work, it is not reccomended.
443The application should really use a module like Mail::Address
444to extract the mail address and pass that.
445.PP
446If \f(CW\*(C`ExactAddresses\*(C'\fR is passed to the contructor, then addresses
447should be a valid rfc2821\-quoted address, although Net::SMTP will
448accept accept the address surrounded by angle brackets.
449.PP
450.Vb 3
451\& funny user@domain WRONG
452\& "funny user"@domain RIGHT, recommended
453\& <"funny user"@domain> OK
454.Ve
455.SH "SEE ALSO"
456.IX Header "SEE ALSO"
457Net::Cmd
458.SH "AUTHOR"
459.IX Header "AUTHOR"
460Graham Barr <gbarr@pobox.com>
461.SH "COPYRIGHT"
462.IX Header "COPYRIGHT"
463Copyright (c) 1995\-2004 Graham Barr. All rights reserved.
464This program is free software; you can redistribute it and/or modify
465it under the same terms as Perl itself.