aliases: Net::SMTPSession
要約
SMTP のセッションを表現したクラスです。
目次
- 特異メソッド
- インスタンスメソッド
- 
- address
- auth_cram_md5
- auth_login
- auth_plain
- authenticate
- capable_auth_types
- capable_cram_md5_auth?
- capable_login_auth?
- capable_plain_auth?
- capable_starttls?
- data
- debug_output=
- disable_ssl
- disable_starttls
- disable_tls
- ehlo
- enable_ssl
- enable_starttls
- enable_starttls_auto
- enable_tls
- esmtp
- esmtp=
- esmtp?
- finish
- helo
- inspect
- mailfrom
- open_message_stream
- open_timeout
- open_timeout=
- port
- quit
- rcptto
- rcptto_list
- read_timeout
- read_timeout=
- ready
- rset
- send_mail
- send_message
- sendmail
- set_debug_output
- ssl?
- start
- started?
- starttls
- starttls?
- starttls_always?
- starttls_auto?
- tls?
 
- 定数
特異メソッド
- default_port -> Integer[permalink][rdoc][edit]
- 
SMTPのデフォルトのポート番号(25)を返します。 
- default_ssl_context -> OpenSSL::SSL::SSLContext[permalink][rdoc][edit]
- 
SSL 通信に使われる SSL のコンテキストのデフォルト値を返します。 
- default_tls_port -> Integer[permalink][rdoc][edit]
- default_ssl_port -> Integer
- 
デフォルトのSMTPSのポート番号(465)を返します。 
- default_submission_port -> Integer[permalink][rdoc][edit]
- 
デフォルトのサブミッションポート番号(587)を返します。 
- new(address, port = Net::SMTP.default_port) -> Net::SMTP[permalink][rdoc][edit]
- 
新しい SMTP オブジェクトを生成します。 address はSMTPサーバーのFQDNで、 port は接続するポート番号です。ただし、このメソッドではまだTCPの接続はしません。 Net::SMTP#start で接続します。 オブジェクトの生成と接続を同時にしたい場合には Net::SMTP.start を代わりに使ってください。 - [PARAM] address:
- 接続先のSMTPサーバの文字列
- [PARAM] port:
- 接続ポート番号
 [SEE_ALSO] Net::SMTP.start, Net::SMTP#start 
- start(address, port = Net::SMTP.default_port, tls_verify: true, tls_hostname: nil, helo: 'localhost', user: nil, password: nil, authtype: DEFAULT_AUTH_TYPE) -> Net::SMTP[permalink][rdoc][edit]
- start(address, port = Net::SMTP.default_port, tls_verify: true, tls_hostname: nil, helo: 'localhost', user: nil, password: nil, authtype: DEFAULT_AUTH_TYPE) {|smtp| ... } -> object
- start(address, port = Net::SMTP.default_port, helo = 'localhost', user = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) -> Net::SMTP
- start(address, port = Net::SMTP.default_port, helo = 'localhost', user = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) {|smtp| .... } -> object
- 
新しい SMTP オブジェクトを生成し、サーバに接続し、セッションを開始します。 以下と同じです。 require 'net/smtp' Net::SMTP.new(address, port).start(helo: helo, user: user, password: password, authtype: authtype) このメソッドにブロックを与えた場合には、新しく作られた Net::SMTP オブジェクトを引数としてそのブロックを呼び、ブロック終了時に自動的に接続を閉じます。ブロックを与えなかった場合には新しく作られた Net::SMTP オブジェクトが返されます。この場合終了時に Net::SMTP#finish を呼ぶのは利用者の責任となります。 user と password の両方が与えられた場合、 SMTP AUTH コマンドによって認証を行います。 authtype は使用する認証のタイプで、シンボルで :plain, :login, :cram_md5 を指定します。 Example: require 'net/smtp' Net::SMTP.start('smtp.example.com') {|smtp| smtp.send_message mail_string, 'from@example.jp', 'to@example.jp' }- [PARAM] address:
- 接続するサーバをホスト名もしくはIPアドレスで指定します
- [PARAM] port:
- ポート番号、デフォルトは 25 です
- [PARAM] tls_verify:
- サーバー証明書を検証するか否か
- [PARAM] tls_hostname:
- サーバー証明書のホスト名
- [PARAM] helo:
- HELO で名乗るドメイン名です
- [PARAM] user:
- 認証で使うアカウント名
- [PARAM] password:
- 認証で使うパスワード
- [PARAM] authtype:
- 認証の種類(:plain, :login, :cram_md5 のいずれか)
- [EXCEPTION] TimeoutError:
- 接続時にタイムアウトした場合に発生します
- [EXCEPTION] Net::SMTPUnsupportedCommand:
- TLSをサポートしていないサーバでTLSを使おうとした場合に発生します
- [EXCEPTION] Net::SMTPServerBusy:
- SMTPエラーコード420,450の場合に発生します
- [EXCEPTION] Net::SMTPSyntaxError:
- SMTPエラーコード500の場合に発生します
- [EXCEPTION] Net::SMTPFatalError:
- SMTPエラーコード5xxの場合に発生します
 [SEE_ALSO] Net::SMTP#start, Net::SMTP.new 
インスタンスメソッド
- address -> String[permalink][rdoc][edit]
- 
接続先のアドレスを返します。 
- auth_cram_md5(user, secret) -> ()[permalink][rdoc][edit]
- 
CRAM-MD5 認証を行います。 このメソッドはセッション開始(Net::SMTP#start)後、メールを送る前に呼びだしてください。 通常は Net::SMTP.start や Net::SMTP#start で認証を行うためこれを利用する必要はないはずです。 - [PARAM] user:
- 認証で使うアカウント名
- [PARAM] secret:
- 認証で使うパスワード
 
- auth_login(user, secret) -> ()[permalink][rdoc][edit]
- 
LOGIN 認証を行います。 このメソッドはセッション開始(Net::SMTP#start)後、メールを送る前に呼びだしてください。 通常は Net::SMTP.start や Net::SMTP#start で認証を行うためこれを利用する必要はないはずです。 - [PARAM] user:
- 認証で使うアカウント名
- [PARAM] secret:
- 認証で使うパスワード
 
- auth_plain(user, secret) -> ()[permalink][rdoc][edit]
- 
PLAIN 認証を行います。 このメソッドはセッション開始(Net::SMTP#start)後、メールを送る前に呼びだしてください。 通常は Net::SMTP.start や Net::SMTP#start で認証を行うためこれを利用する必要はないはずです。 - [PARAM] user:
- 認証で使うアカウント名
- [PARAM] secret:
- 認証で使うパスワード
 
- authenticate(user, secret, authtype) -> ()[permalink][rdoc][edit]
- 
認証を行います。 このメソッドはセッション開始(Net::SMTP#start)後、メールを送る前に呼びだしてください。 通常は Net::SMTP.start や Net::SMTP#start で認証を行うためこれを利用する必要はないはずです。 - [PARAM] user:
- 認証で使うアカウント名
- [PARAM] secret:
- 認証で使うパスワード
- [PARAM] authtype:
- 認証の種類(:plain, :login, :cram_md5 のいずれか)
 [SEE_ALSO] Net::SMTP.start, Net::SMTP#start, Net::SMTP#auth_plain, Net::SMTP#auth_login, Net::SMTP#auth_cram_md5 
- capable_auth_types -> [String][permalink][rdoc][edit]
- 
接続したサーバで利用可能な認証を配列で返します。 返り値の配列の要素は、 'PLAIN', 'LOGIN', 'CRAM-MD5' です。 このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。 
- capable_cram_md5_auth? -> bool[permalink][rdoc][edit]
- 
サーバが AUTH CRAM-MD5 を広告してきた場合に真を返します。 このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。 
- capable_login_auth? -> bool[permalink][rdoc][edit]
- 
サーバが AUTH LOGIN を広告してきた場合に真を返します。 このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。 
- capable_plain_auth? -> bool[permalink][rdoc][edit]
- 
サーバが AUTH PLAIN を広告してきた場合に真を返します。 このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。 
- capable_starttls? -> bool[permalink][rdoc][edit]
- 
サーバが STARTTLS を広告してきた場合に真を返します。 このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。 
- data(message) -> Net::SMTP::Response[permalink][rdoc][edit]
- data {|f| .... } -> Net::SMTP::Response
- 
DATA コマンドを送ります。 文字列を引数に与えた場合はそれを本文として送ります。ブロックを与えた場合にはそのブロックにストリームオブジェクトが渡されます (Net::SMTP#open_message_stream参考)。 通常は Net::SMTP#send_message, Net::SMTP#open_message_stream で DATA が送られるため利用する必要はないはずです。 - [PARAM] message:
- メールの本文
 
- set_debug_output(f) -> ()[permalink][rdoc][edit]
- debug_output=(f)
- 
デバッグ出力の出力先を指定します。このメソッドは深刻なセキュリティホールの原因となりえます。デバッグ用にのみ利用してください。 - [PARAM] f:
- デバッグ出力先を IO (もしくは << というメソッドを持つクラス)で指定します
 
- disable_ssl -> ()[permalink][rdoc][edit]
- disable_tls -> ()
- 
その Net::SMTP オブジェクトが SMTPS を利用しないよう設定します。 [SEE_ALSO] Net::SMTP#disable_tls, Net::SMTP#tls? 
- disable_starttls -> ()[permalink][rdoc][edit]
- 
その Net::SMTP オブジェクトがSTARTTLSを常に使わないよう設定します。 [SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#enable_starttls, Net::SMTP#enable_starttls_auto 
- ehlo(domain) -> Net::SMTP::Response[permalink][rdoc][edit]
- 
EHLO コマンドを送ります(ESMTP を使います)。 通常は Net::SMTP.start, Net::SMTP#start で EHLO が送られるため利用する必要はないはずです。 - [PARAM] domain:
- EHLOで送るドメイン名
 
- enable_ssl(context = Net::SMTP.default_ssl_context) -> ()[permalink][rdoc][edit]
- enable_tls(context = Net::SMTP.default_ssl_context) -> ()
- 
その Net::SMTP オブジェクトが SMTPS を利用するよう設定します。 このメソッドは Net::SMTP#start を呼ぶ前に呼ぶ必要があります。 - [PARAM] context:
- SSL接続で利用する OpenSSL::SSL::SSLContext
 [SEE_ALSO] Net::SMTP#tls?, Net::SMTP#disable_tls 
- enable_starttls(context = Net::SMTP.default_ssl_context) -> ()[permalink][rdoc][edit]
- 
その Net::SMTP オブジェクトが 常にSTARTTLSを利用する (利用できない場合には例外を発生する)ように設定します。 - [PARAM] context:
- SSL接続で利用する OpenSSL::SSL::SSLContext
 [SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#starttls_always?, Net::SMTP#enable_starttls_auto 
- enable_starttls_auto(context = Net::SMTP.default_ssl_context) -> ()[permalink][rdoc][edit]
- 
その Net::SMTP オブジェクトがSTARTTLSが利用可能な場合 (つまりサーバがSTARTTLSを広告した場合)のみにSTARTTLSを利用するように設定します。 [SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#starttls_auto?, Net::SMTP#enable_starttls_auto - [PARAM] context:
- SSL接続で利用する OpenSSL::SSL::SSLContext
 [SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#starttls_auto?, Net::SMTP#enable_starttls 
- esmtp? -> bool[permalink][rdoc][edit]
- esmtp -> bool
- 
その Net::SMTP オブジェクトが ESMTP を使う場合に真を返します。デフォルトは真です。 [SEE_ALSO] Net::SMTP#esmtp= 
- esmtp=(bool)[permalink][rdoc][edit]
- 
その Net::SMTP オブジェクトが ESMTP を使うかどうかを指定します。 この指定は Net::SMTP#start を呼ぶ前にする必要があります。 ESMTPモードで Net::SMTP#start を呼び、うまくいかなかった場合には 普通の SMTP モードに切り替えてやりなおします (逆はしません)。 [SEE_ALSO] Net::SMTP#esmtp? 
- finish -> ()[permalink][rdoc][edit]
- 
SMTP セッションを終了します。 - [EXCEPTION] IOError:
- セッション開始前にこのメソッドが呼ばれた場合に発生します
 [SEE_ALSO] Net::SMTP#start 
- helo(domain) -> Net::SMTP::Response[permalink][rdoc][edit]
- 
HELO コマンドを送ります(標準的な SMTP を使います)。 通常は Net::SMTP.start, Net::SMTP#start で HELO が送られるため利用する必要はないはずです。 - [PARAM] domain:
- HELOで送るドメイン名
 
- inspect -> String[permalink][rdoc][edit]
- 
[SEE_ALSO] Object#inspect 
- mailfrom(from_addr) -> Net::SMTP::Response[permalink][rdoc][edit]
- 
MAILFROM コマンドを送ります。 通常は Net::SMTP#send_message, Net::SMTP#open_message_stream で MAILFROM が送られるため利用する必要はないはずです。 - [PARAM] from_addr:
- 送信元メールアドレス
 
- open_message_stream(from_addr, *to_addrs) {|f| .... } -> ()[permalink][rdoc][edit]
- ready(from_addr, *to_addrs) {|f| .... } -> ()
- 
メール書き込みの準備をし、書き込み先のストリームオブジェクトをブロックに渡します。ブロック終了後、書きこんだ結果が送られます。 渡されるストリームオブジェクトは以下のメソッドを持っています。 - puts(str = '') strを出力して CR LFを出力
- print(str) strを出力
- printf(fmt, *args) sprintf(fmt,*args) を出力
- write(str):: str を出力して書き込んだバイト数を返す
- <<(str):: str を出力してストリームオブジェクト自身を返す
 from_domain は送り主のメールアドレス ('...@...'のかたち) 、 to_addrs には送信先メールアドレスを文字列で渡します。 require 'net/smtp' Net::SMTP.start('smtp.example.com', 25) {|smtp| smtp.open_message_stream('from@example.com', 'to@example.net') {|f| f.puts 'From: from@example.com' f.puts 'To: to@example.net' f.puts 'Subject: test mail' f.puts f.puts 'This is test mail.' } }ready は obsolete です。 - [PARAM] from_addr:
- 送信元のメールアドレス
- [PARAM] to_addrs:
- 送信先のメールアドレス(複数可、少なくとも1個)
- [EXCEPTION] IOError:
- すでにセッションが終了している場合に発生します
- [EXCEPTION] TimeoutError:
- 接続がタイムアウトした場合に発生します
- [EXCEPTION] Net::SMTPServerBusy:
- SMTPエラーコード420,450の場合に発生します
- [EXCEPTION] Net::SMTPSyntaxError:
- SMTPエラーコード500の場合に発生します
- [EXCEPTION] Net::SMTPFatalError:
- SMTPエラーコード5xxの場合に発生します
- [EXCEPTION] Net::SMTPAuthenticationError:
- 送信に必要な認証を行っていなかった場合に発生します
- [EXCEPTION] Net::SMTPUnknownError:
- SMTPエラーコードがプロトコル上不正な場合に発生します
 [SEE_ALSO] Net::SMTP#send_message 
- open_timeout -> Integer[permalink][rdoc][edit]
- 
接続時に待つ最大秒数を返します。 デフォルトは30(秒)です。この秒数たってもコネクションが開かなければ例外 TimeoutError を発生します。 [SEE_ALSO] Net::SMTP#open_timeout= 
- open_timeout=(n)[permalink][rdoc][edit]
- 
接続時に待つ最大秒数を設定します。 [SEE_ALSO] Net::SMTP#open_timeout 
- port -> Integer[permalink][rdoc][edit]
- 
接続先のポート番号を返します。 
- quit -> Net::SMTP::Response[permalink][rdoc][edit]
- 
QUIT コマンドを送ります。 通常は Net::SMTP#finish で QUIT が送られるため利用する必要はないはずです。 
- rcptto(to_addr) -> Net::SMTP::Response[permalink][rdoc][edit]
- 
RCPTTO コマンドを送ります。 通常は Net::SMTP#send_message, Net::SMTP#open_message_stream で RCPTTO が送られるため利用する必要はないはずです。 - [PARAM] to_addr:
- 送信先メールアドレス
 
- rcptto_list(to_addrs) { ... } -> object[permalink][rdoc][edit]
- 
RCPTTO コマンドを to_addrs のすべてのメールアドレスに対して送ります。 コマンドを送った後、ブロックを呼び出します。このメソッドの返り値はブロックの返り値になります。 通常は Net::SMTP#send_message, Net::SMTP#open_message_stream で RCPTTO が送られるため利用する必要はないはずです。 - [PARAM] to_addrs:
- 送信先メールアドレスの配列
 
- read_timeout -> Integer[permalink][rdoc][edit]
- 
読みこみ (read(2) 一回) でブロックしてよい最大秒数を返します。 デフォルトは60(秒)です。この秒数たっても読みこめなければ例外 TimeoutError を発生します。 [SEE_ALSO] Net::SMTP#read_timeout= 
- read_timeout=(n)[permalink][rdoc][edit]
- 
読み込みでブロックしてよい最大秒数を設定します。 [SEE_ALSO] Net::SMTP#read_timeout 
- rset -> Net::SMTP::Response[permalink][rdoc][edit]
- 
RSET コマンドを送ります。 
- send_message(mailsrc, from_addr, *to_addrs) -> ()[permalink][rdoc][edit]
- send_mail(mailsrc, from_addr, *to_addrs) -> ()
- sendmail(mailsrc, from_addr, *to_addrs) -> ()
- 
メールを送信します。 mailsrc をメールとして送信します。 mailsrc は each イテレータを持つオブジェクトならなんでも構いません(たとえば String や File)。 from_domain は送り主のメールアドレス ('...@...'のかたち) 、 to_addrs には送信先メールアドレスを文字列で渡します。 require 'net/smtp' Net::SMTP.start('smtp.example.com') {|smtp| smtp.send_message mail_string, 'from@example.com', 'to1@example.net', 'to2@example.net' }sendmail は obsolete です。 - [PARAM] mailsrc:
- メールの内容
- [PARAM] from_addr:
- 送信元のメールアドレス
- [PARAM] to_addrs:
- 送信先のメールアドレス(複数可、少なくとも1個)
- [EXCEPTION] IOError:
- すでにセッションが終了している場合に発生します
- [EXCEPTION] TimeoutError:
- 接続がタイムアウトした場合に発生します
- [EXCEPTION] Net::SMTPServerBusy:
- SMTPエラーコード420,450の場合に発生します
- [EXCEPTION] Net::SMTPSyntaxError:
- SMTPエラーコード500の場合に発生します
- [EXCEPTION] Net::SMTPFatalError:
- SMTPエラーコード5xxの場合に発生します
- [EXCEPTION] Net::SMTPUnknownError:
- SMTPエラーコードがプロトコル上不正な場合に発生します
 
- tls? -> bool[permalink][rdoc][edit]
- ssl? -> bool
- 
その Net::SMTP オブジェクトが SMTPS を利用するならば真を返します。 [SEE_ALSO] Net::SMTP#enable_tls, Net::SMTP#disable_tls, Net::SMTP#start 
- start(helo: 'localhost', user: nil, password: nil, authtype: DEFAULT_AUTH_TYPE) -> Net::SMTP[permalink][rdoc][edit]
- start(helo: 'localhost', user: nil, password: nil, authtype: DEFAULT_AUTH_TYPE) {|smtp| ... } -> object
- start(helo = 'localhost', user = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) -> Net::SMTP
- start(helo = 'localhost', user = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) {|smtp| .... } -> object
- 
サーバにコネクションを張り、同時に SMTP セッションを開始します。 もしすでにセッションが開始していたら IOError が発生します。 user と password の両方が与えられた場合、 SMTP AUTH コマンドによって認証を行います。 authtype は使用する認証のタイプで、シンボルで :plain, :login, :cram_md5 を指定します。 このメソッドにブロックを与えた場合には、そのオブジェクトを引数としてそのブロックを呼び、ブロック終了時に自動的に接続を閉じます。ブロックを与えなかった場合には自分自身を返します。この場合終了時に Net::SMTP#finish を呼ぶのは利用者の責任となります。 - [PARAM] helo:
- HELO で名乗るドメイン名です
- [PARAM] user:
- 認証で使うアカウント名
- [PARAM] password:
- 認証で使うパスワード
- [PARAM] authtype:
- 認証の種類(:plain, :login, :cram_md5 のいずれか)
- [EXCEPTION] IOError:
- すでにセッションを開始している場合に発生します
- [EXCEPTION] TimeoutError:
- 接続がタイムアウトした場合に発生します
- [EXCEPTION] Net::SMTPUnsupportedCommand:
- STARTTLSをサポートしていないサーバでSTARTTLSを利用しようとした場合に発生します
- [EXCEPTION] Net::SMTPServerBusy:
- SMTPエラーコード420,450の場合に発生します
- [EXCEPTION] Net::SMTPSyntaxError:
- SMTPエラーコード500の場合に発生します
- [EXCEPTION] Net::SMTPFatalError:
- SMTPエラーコード5xxの場合に発生します
 
- started? -> bool[permalink][rdoc][edit]
- 
SMTP セッションが開始されていたら真を返します。 セッションがまだ開始していない、もしくは終了している場合には偽を返します。 [SEE_ALSO] Net::SMTP#start, Net::SMTP#finish 
- starttls -> Net::SMTP::Response[permalink][rdoc][edit]
- 
STARTTLS コマンドを送ります。 通常は Net::SMTP#start で STARTTLS が送られるため利用する必要はないはずです。 
- starttls? -> Symbol/nil[permalink][rdoc][edit]
- 
その Net::SMTP オブジェクトが STARTTLSを利用するかどうかを返します。 常に利用する(利用できないときは Net::SMTP#start で例外 Net::SMTPUnsupportedCommand を発生) するときは :always を、利用可能な場合のみ利用する場合は :auto を、常に利用しない場合には nil を返します。 [SEE_ALSO] Net::SMTP#start 
- starttls_always? -> bool[permalink][rdoc][edit]
- 
その Net::SMTP オブジェクトが 常にSTARTTLSを利用する (利用できない場合には例外を発生する)ならば真を返します。 [SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#starttls_auto?, Net::SMTP#enable_starttls 
- starttls_auto? -> bool[permalink][rdoc][edit]
- 
その Net::SMTP オブジェクトが利用可能な場合にのみにSTARTTLSを利用するならば真を返します。 [SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#starttls_always?, Net::SMTP#enable_starttls_auto 
定数
- DEFAULT_AUTH_TYPE -> Symbol[permalink][rdoc][edit]
- 
デフォルトの認証スキーム(:plain)です。 
- Revision -> String[permalink][rdoc][edit]
- 
ファイルのリビジョンです。使わないでください。