1Mail::Transport::SMTP(3U)ser Contributed Perl DocumentatiMoanil::Transport::SMTP(3)
2
3
4
6 Mail::Transport::SMTP - transmit messages without external program
7
9 Mail::Transport::SMTP
10 is a Mail::Transport::Send
11 is a Mail::Transport
12 is a Mail::Reporter
13
15 my $sender = Mail::Transport::SMTP->new(...);
16 $sender->send($message);
17
18 $message->send(via => 'smtp');
19
21 This module implements transport of "Mail::Message" objects by
22 negotiating to the destination host directly by using the SMTP
23 protocol, without help of "sendmail", "mail", or other programs on the
24 local host.
25
26 warning: you may need to install Net::SMTPS, to get TLS support.
27
28 Extends "DESCRIPTION" in Mail::Transport::Send.
29
31 Extends "METHODS" in Mail::Transport::Send.
32
33 Constructors
34 Extends "Constructors" in Mail::Transport::Send.
35
36 Mail::Transport::SMTP->new(%options)
37 -Option --Defined in --Default
38 esmtp_options {}
39 executable Mail::Transport undef
40 from undef
41 helo <from Net::Config>
42 hostname Mail::Transport <from Net::Config>
43 interval Mail::Transport 30
44 log Mail::Reporter 'WARNINGS'
45 password undef
46 port Mail::Transport 25
47 proxy Mail::Transport <from Net::Config>
48 retry Mail::Transport <false>
49 smtp_debug <false>
50 timeout 120
51 trace Mail::Reporter 'WARNINGS'
52 username undef
53 via Mail::Transport 'smtp'
54
55 esmtp_options => HASH
56 [2.116] ESMTP options to pass to Net::SMTP. See the Net::SMTP
57 documentation for full details. Options can also be passed at
58 send time. For example: "{ XVERP => 1 }"
59
60 executable => FILENAME
61 from => ADDRESS
62 Allows a default sender address to be specified globally. See
63 trySend() for full details.
64
65 helo => HOST
66 The fully qualified name of the sender's host (your system) which
67 is used for the greeting message to the receiver. If not
68 specified, Net::Config or else Net::Domain are questioned to find
69 it. When even these do not supply a valid name, the name of the
70 domain in the "From" line of the message is assumed.
71
72 hostname => HOSTNAME|ARRAY
73 interval => SECONDS
74 log => LEVEL
75 password => STRING
76 The password to be used with the new(username) to log in to the
77 remote server.
78
79 port => INTEGER
80 proxy => PATH
81 retry => NUMBER|undef
82 smtp_debug => BOOLEAN
83 Simulate transmission: the SMTP protocol output will be sent to
84 your screen.
85
86 timeout => SECONDS
87 The number of seconds to wait for a valid response from the
88 server before failing.
89
90 trace => LEVEL
91 username => STRING
92 Use SASL authentication to contact the remote SMTP server
93 (RFC2554). This username in combination with new(password) is
94 passed as arguments to Net::SMTP method auth. Other forms of
95 authentication are not supported by Net::SMTP. The "username"
96 can also be specified as an Authen::SASL object.
97
98 via => CLASS|NAME
99
100 Sending mail
101 Extends "Sending mail" in Mail::Transport::Send.
102
103 $obj->destinations( $message, [$address|ARRAY] )
104 Inherited, see "Sending mail" in Mail::Transport::Send
105
106 $obj->putContent($message, $fh, %options)
107 Inherited, see "Sending mail" in Mail::Transport::Send
108
109 $obj->send($message, %options)
110 Inherited, see "Sending mail" in Mail::Transport::Send
111
112 $obj->trySend($message, %options)
113 Try to send the $message once. This may fail, in which case this
114 method will return "false". In list context, the reason for
115 failure can be caught: in list context "trySend" will return a list
116 of six values:
117
118 (success, rc, rc-text, error location, quit success, accept)
119
120 Success and quit success are booleans. The error code and -text
121 are protocol specific codes and texts. The location tells where
122 the problem occurred.
123
124 [3.003] the 'accept' returns the message of the dataend()
125 instruction. Some servers may provide useful information in there,
126 like an internal message registration id. For example, postfix may
127 return "2.0.0 Ok: queued as 303EA380EE". You can only use this
128 parameter when running local delivery (which is a smart choice
129 anyway)
130
131 -Option --Default
132 esmtp_options {}
133 from < >
134 to []
135
136 esmtp_options => HASH
137 Additional or overridden EMSTP options. See new(esmtp_options)
138
139 from => ADDRESS
140 Your own identification. This may be fake. If not specified, it
141 is taken from Mail::Message::sender(), which means the content of
142 the "Sender" field of the message or the first address of the
143 "From" field. This defaults to "< >", which represents "no
144 address".
145
146 to => ADDRESS|[ADDRESSES]
147 Alternative destinations. If not specified, the "To", "Cc" and
148 "Bcc" fields of the header are used. An address is a string or a
149 Mail::Address object.
150
151 Server connection
152 Extends "Server connection" in Mail::Transport::Send.
153
154 $obj->contactAnyServer()
155 Creates the connection to the SMTP server. When more than one
156 hostname was specified, the first which accepts a connection is
157 taken. An IO::Socket::INET object is returned.
158
159 $obj->findBinary( $name, [@directories] )
160 Inherited, see "Server connection" in Mail::Transport
161
162 $obj->remoteHost()
163 Inherited, see "Server connection" in Mail::Transport
164
165 $obj->retry()
166 Inherited, see "Server connection" in Mail::Transport
167
168 $obj->tryConnectTo($host, %options)
169 Try to establish a connection to deliver SMTP to the specified
170 $host. The %options are passed to the "new" method of Net::SMTP.
171
172 Error handling
173 Extends "Error handling" in Mail::Transport::Send.
174
175 $obj->AUTOLOAD()
176 Inherited, see "Error handling" in Mail::Reporter
177
178 $obj->addReport($object)
179 Inherited, see "Error handling" in Mail::Reporter
180
181 $obj->defaultTrace( [$level]|[$loglevel, $tracelevel]|[$level,
182 $callback] )
183 Mail::Transport::SMTP->defaultTrace( [$level]|[$loglevel,
184 $tracelevel]|[$level, $callback] )
185 Inherited, see "Error handling" in Mail::Reporter
186
187 $obj->errors()
188 Inherited, see "Error handling" in Mail::Reporter
189
190 $obj->log( [$level, [$strings]] )
191 Mail::Transport::SMTP->log( [$level, [$strings]] )
192 Inherited, see "Error handling" in Mail::Reporter
193
194 $obj->logPriority($level)
195 Mail::Transport::SMTP->logPriority($level)
196 Inherited, see "Error handling" in Mail::Reporter
197
198 $obj->logSettings()
199 Inherited, see "Error handling" in Mail::Reporter
200
201 $obj->notImplemented()
202 Inherited, see "Error handling" in Mail::Reporter
203
204 $obj->report( [$level] )
205 Inherited, see "Error handling" in Mail::Reporter
206
207 $obj->reportAll( [$level] )
208 Inherited, see "Error handling" in Mail::Reporter
209
210 $obj->trace( [$level] )
211 Inherited, see "Error handling" in Mail::Reporter
212
213 $obj->warnings()
214 Inherited, see "Error handling" in Mail::Reporter
215
216 Cleanup
217 Extends "Cleanup" in Mail::Transport::Send.
218
219 $obj->DESTROY()
220 Inherited, see "Cleanup" in Mail::Reporter
221
223 Warning: Message has no destination
224 It was not possible to figure-out where the message is intended to
225 go to.
226
227 Notice: No addresses found to send the message to, no connection made
228 Error: Package $package does not implement $method.
229 Fatal error: the specific package (or one of its superclasses) does
230 not implement this method where it should. This message means that
231 some other related classes do implement this method however the
232 class at hand does not. Probably you should investigate this and
233 probably inform the author of the package.
234
235 Warning: Resent group does not specify a destination
236 The message which is sent is the result of a bounce (for instance
237 created with Mail::Message::bounce()), and therefore starts with a
238 "Received" header field. With the "bounce", the new destination(s)
239 of the message are given, which should be included as "Resent-To",
240 "Resent-Cc", and "Resent-Bcc".
241
242 The "To", "Cc", and "Bcc" header information is only used if no
243 "Received" was found. That seems to be the best explanation of the
244 RFC.
245
246 As alternative, you may also specify the "to" option to some of the
247 senders (for instance Mail::Transport::SMTP::send(to) to overrule
248 any information found in the message itself about the destination.
249
251 This module is part of Mail-Transport distribution version 3.005, built
252 on July 22, 2020. Website: http://perl.overmeer.net/CPAN/
253
255 Copyrights 2001-2020 by [Mark Overmeer]. For other contributors see
256 ChangeLog.
257
258 This program is free software; you can redistribute it and/or modify it
259 under the same terms as Perl itself. See http://dev.perl.org/licenses/
260
261
262
263perl v5.32.1 2021-01-27 Mail::Transport::SMTP(3)