--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: smtp
comment: 
- !ruby/struct:SM::Flow::P 
  body: Opens a TCP connection and starts the SMTP session.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Parameters
- !ruby/struct:SM::Flow::P 
  body: <tt>helo</tt> is the <em>HELO</em> <em>domain</em> that you'll dispatch mails from; see the discussion in the overview notes.
- !ruby/struct:SM::Flow::P 
  body: If both of <tt>user</tt> and <tt>secret</tt> are given, SMTP authentication will be attempted using the AUTH command. <tt>authtype</tt> 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.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Block Usage
- !ruby/struct:SM::Flow::P 
  body: 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.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Example
- !ruby/struct:SM::Flow::P 
  body: This is very similar to the class method SMTP.start.
- !ruby/struct:SM::Flow::VERB 
  body: "    require 'net/smtp'\n    smtp = Net::SMTP.new('smtp.mail.server', 25)\n    smtp.start(helo_domain, account, password, authtype) do |smtp|\n      smtp.send_message msgstr, 'from@example.com', ['dest@example.com']\n    end\n"
- !ruby/struct:SM::Flow::P 
  body: 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.
- !ruby/struct:SM::Flow::H 
  level: 3
  text: Errors
- !ruby/struct:SM::Flow::P 
  body: If session has already been started, an IOError will be raised.
- !ruby/struct:SM::Flow::P 
  body: "This method may raise:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPAuthenticationError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPServerBusy
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPSyntaxError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPFatalError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: Net::SMTPUnknownError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: IOError
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: TimeoutError
  type: :BULLET
full_name: Net::SMTP#start
is_singleton: false
name: start
params: ( helo = 'localhost.localdomain', user = nil, secret = nil, authtype = nil ) {|smtp| ...}
visibility: public
