Returns true if the HTTP
session has been started.
Opens a TCP connection and HTTP
session.
When this method is called with a block, it passes the Net::HTTP
object to the block, and closes the TCP connection and HTTP
session after the block has been executed.
When called with a block, it returns the return value of the block; otherwise, it returns self.
Posts data
(must be a String) to path
. header
must be a Hash
like { ‘Accept’ => ‘/’, … }.
This method returns a Net::HTTPResponse
object.
If called with a block, yields each fragment of the entity body in turn as a string as it is read from the socket. Note that in this case, the returned response object will not contain a (meaningful) body.
dest
argument is obsolete. It still works but you must not use it.
This method never raises exception.
response = http.post('/cgi-bin/search.rb', 'query=foo') # using block File.open('result.txt', 'w') {|f| http.post('/cgi-bin/search.rb', 'query=foo') do |str| f.write str end }
You should set Content-Type: header field for POST. If no Content-Type: field given, this method uses “application/x-www-form-urlencoded” by default.
Sends a STARTTLS command to start TLS session.
Sends a CREATE command to create a new mailbox
.
A Net::IMAP::NoResponseError
is raised if a mailbox with that name cannot be created.
Sends a RENAME command to change the name of the mailbox
to newname
.
A Net::IMAP::NoResponseError
is raised if a mailbox with the name mailbox
cannot be renamed to newname
for whatever reason; for instance, because mailbox
does not exist, or because there is already a mailbox with the name newname
.
Sends a LIST command, and returns a subset of names from the complete set of all names available to the client. refname
provides a context (for instance, a base directory in a directory-based mailbox hierarchy). mailbox
specifies a mailbox or (via wildcards) mailboxes under that context. Two wildcards may be used in mailbox
: ‘*’, which matches all characters including the hierarchy delimiter (for instance, ‘/’ on a UNIX-hosted directory-based mailbox hierarchy); and ‘%’, which matches all characters except the hierarchy delimiter.
If refname
is empty, mailbox
is used directly to determine which mailboxes to match. If mailbox
is empty, the root name of refname
and the hierarchy delimiter are returned.
The return value is an array of Net::IMAP::MailboxList
. For example:
imap.create("foo/bar") imap.create("foo/baz") p imap.list("", "foo/%") #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\ #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\ #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
Sends a XLIST command, and returns a subset of names from the complete set of all names available to the client. refname
provides a context (for instance, a base directory in a directory-based mailbox hierarchy). mailbox
specifies a mailbox or (via wildcards) mailboxes under that context. Two wildcards may be used in mailbox
: ‘*’, which matches all characters including the hierarchy delimiter (for instance, ‘/’ on a UNIX-hosted directory-based mailbox hierarchy); and ‘%’, which matches all characters except the hierarchy delimiter.
If refname
is empty, mailbox
is used directly to determine which mailboxes to match. If mailbox
is empty, the root name of refname
and the hierarchy delimiter are returned.
The XLIST command is like the LIST command except that the flags returned refer to the function of the folder/mailbox, e.g. :Sent
The return value is an array of Net::IMAP::MailboxList
. For example:
imap.create("foo/bar") imap.create("foo/baz") p imap.xlist("", "foo/%") #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\ #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\ #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
Sends a STATUS command, and returns the status of the indicated mailbox
. attr
is a list of one or more attributes whose statuses are to be requested. Supported attributes include:
MESSAGES:: the number of messages in the mailbox. RECENT:: the number of recent messages in the mailbox. UNSEEN:: the number of unseen messages in the mailbox.
The return value is a hash of attributes. For example:
p imap.status("inbox", ["MESSAGES", "RECENT"]) #=> {"RECENT"=>0, "MESSAGES"=>44}
A Net::IMAP::NoResponseError
is raised if status values for mailbox
cannot be returned; for instance, because it does not exist.
Sends a SORT command to sort messages in the mailbox. Returns an array of message sequence numbers. For example:
p imap.sort(["FROM"], ["ALL"], "US-ASCII") #=> [1, 2, 3, 5, 6, 7, 8, 4, 9] p imap.sort(["DATE"], ["SUBJECT", "hello"], "US-ASCII") #=> [6, 7, 8, 1]
See [SORT-THREAD-EXT] for more details.
Similar to search()
, but returns message sequence numbers in threaded format, as a Net::IMAP::ThreadMember
tree. The supported algorithms are:
split into single-level threads according to subject, ordered by date.
split into threads by parent/child relationships determined by which message is a reply to which.
Unlike search()
, charset
is a required argument. US-ASCII and UTF-8 are sample values.
See [SORT-THREAD-EXT] for more details.
Creates a new POP3
object and open the connection. Equivalent to
Net::POP3.new(address, port, isapop).start(account, password)
If block
is provided, yields the newly-opened POP3
object to it, and automatically closes it at the end of the session.
Net::POP3.start(addr, port, account, password) do |pop| pop.each_mail do |m| file.write m.pop m.delete end end
The port number to connect to.
true
if the POP3
session has started.
Starts a POP3
session.
When called with block, gives a POP3
object to the block and closes the session after block call finishes.
This method raises a POPAuthenticationError
if authentication fails.
Resets the session. This clears all “deleted” marks from messages.
This method raises a POPError
if an error occurs.
Fetches the message header and lines
lines of body.
The optional dest
argument is obsolete.
This method raises a POPError
if an error occurs.
Returns truth value if this object uses STARTTLS. If this object always uses STARTTLS, returns :always. If this object uses STARTTLS when the server support TLS, returns :auto.
Creates a new Net::SMTP
object and connects to the server.
This method is equivalent to:
Net::SMTP.new(address, port).start(helo_domain, account, password, authtype)
Net::SMTP.start('your.smtp.server') do |smtp| smtp.send_message msgstr, 'from@example.com', ['dest@example.com'] end
If called with a block, the newly-opened Net::SMTP
object is yielded to the block, and automatically closed when the block finishes. If called without a block, the newly-opened Net::SMTP
object is returned to the caller, and it is the caller’s responsibility to close it when finished.
address
is the hostname or ip address of your smtp server.
port
is the port to connect to; it defaults to port 25.
helo
is the HELO domain provided by the client to the server (see overview comments); it defaults to ‘localhost’.
The remaining arguments are used for SMTP
authentication, if required or desired. user
is the account name; secret
is your password or other authentication token; and authtype
is the authentication type, one of :plain, :login, or :cram_md5. See the discussion of SMTP
Authentication in the overview notes.
This method may raise:
true
if the SMTP
session has been started.
Opens a TCP connection and starts the SMTP
session.
helo
is the HELO domain that you’ll dispatch mails from; see the discussion in the overview notes.
If both of user
and secret
are given, SMTP
authentication will be attempted using the AUTH command. authtype
specifies the type of authentication to attempt; it must be one of :login, :plain, and :cram_md5. See the notes on SMTP
Authentication in the overview.
When this methods is called with a block, the newly-started SMTP
object is yielded to the block, and automatically closed after the block call finishes. Otherwise, it is the caller’s responsibility to close the session when finished.
This is very similar to the class method SMTP.start
.
require 'net/smtp' smtp = Net::SMTP.new('smtp.mail.server', 25) smtp.start(helo_domain, account, password, authtype) do |smtp| smtp.send_message msgstr, 'from@example.com', ['dest@example.com'] end
The primary use of this method (as opposed to SMTP.start
) is probably to set debugging (set_debug_output
) or ESMTP (esmtp=
), which must be done before the session is started.
If session has already been started, an IOError
will be raised.
This method may raise: