aliases: Net::SMTPSession
SMTP のセッションを表現したクラスです。
default_port -> Integer
[permalink][rdoc]SMTPのデフォルトのポート番号(25)を返します。
default_ssl_context -> OpenSSL::SSL::SSLContext
[permalink][rdoc]SSL 通信に使われる SSL のコンテキストのデフォルト値を返します。
default_tls_port -> Integer
[permalink][rdoc]default_ssl_port -> Integer
デフォルトのSMTPSのポート番号(465)を返します。
default_submission_port -> Integer
[permalink][rdoc]デフォルトのサブミッションポート番号(587)を返します。
new(address, port = Net::SMTP.default_port) -> Net::SMTP
[permalink][rdoc]新しい SMTP オブジェクトを生成します。 address はSMTPサーバーのFQDNで、 port は接続するポート番号です。ただし、このメソッドではまだTCPの接続はしません。 Net::SMTP#start で接続します。
オブジェクトの生成と接続を同時にしたい場合には Net::SMTP.start を代わりに使ってください。
[SEE_ALSO] Net::SMTP.start, Net::SMTP#start
start(address, port = Net::SMTP.default_port, helo_domain = 'localhost', account = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) -> Net::SMTP
[permalink][rdoc]start(address, port = Net::SMTP.default_port, helo_domain = 'localhost', account = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) {|smtp| .... } -> object
新しい SMTP オブジェクトを生成し、サーバに接続し、セッションを開始します。
以下と同じです。
require 'net/smtp' Net::SMTP.new(address, port).start(helo_domain, account, password, authtype)
このメソッドにブロックを与えた場合には、新しく作られた Net::SMTP オブジェクトを引数としてそのブロックを呼び、ブロック終了時に自動的に接続を閉じます。ブロックを与えなかった場合には新しく作られた Net::SMTP オブジェクトが返されます。この場合終了時に Net::SMTP#finish を呼ぶのは利用者の責任となります。
account と 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' }
[SEE_ALSO] Net::SMTP#start, Net::SMTP.new
address -> String
[permalink][rdoc]接続先のアドレスを返します。
auth_cram_md5(user, secret) -> ()
[permalink][rdoc]CRAM-MD5 認証を行います。
このメソッドはセッション開始(Net::SMTP#start)後、メールを送る前に呼びだしてください。
通常は Net::SMTP.start や Net::SMTP#start で認証を行うためこれを利用する必要はないはずです。
auth_login(user, secret) -> ()
[permalink][rdoc]LOGIN 認証を行います。
このメソッドはセッション開始(Net::SMTP#start)後、メールを送る前に呼びだしてください。
通常は Net::SMTP.start や Net::SMTP#start で認証を行うためこれを利用する必要はないはずです。
auth_plain(user, secret) -> ()
[permalink][rdoc]PLAIN 認証を行います。
このメソッドはセッション開始(Net::SMTP#start)後、メールを送る前に呼びだしてください。
通常は Net::SMTP.start や Net::SMTP#start で認証を行うためこれを利用する必要はないはずです。
authenticate(user, secret, authtype) -> ()
[permalink][rdoc]認証を行います。
このメソッドはセッション開始(Net::SMTP#start)後、メールを送る前に呼びだしてください。
通常は Net::SMTP.start や Net::SMTP#start で認証を行うためこれを利用する必要はないはずです。
[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]接続したサーバで利用可能な認証を配列で返します。
返り値の配列の要素は、 'PLAIN', 'LOGIN', 'CRAM-MD5' です。
このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。
capable_cram_md5_auth? -> bool
[permalink][rdoc]サーバが AUTH CRAM-MD5 を広告してきた場合に真を返します。
このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。
capable_login_auth? -> bool
[permalink][rdoc]サーバが AUTH LOGIN を広告してきた場合に真を返します。
このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。
capable_plain_auth? -> bool
[permalink][rdoc]サーバが AUTH PLAIN を広告してきた場合に真を返します。
このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。
capable_starttls? -> bool
[permalink][rdoc]サーバが STARTTLS を広告してきた場合に真を返します。
このメソッドは Net::SMTP#start などでセッションを開始した以降にしか正しい値を返しません。
data(message) -> Net::SMTP::Response
[permalink][rdoc]data {|f| .... } -> Net::SMTP::Response
DATA コマンドを送ります。
文字列を引数に与えた場合はそれを本文として送ります。ブロックを与えた場合にはそのブロックにストリームオブジェクトが渡されます (Net::SMTP#open_message_stream参考)。
通常は Net::SMTP#send_message, Net::SMTP#open_message_stream で DATA が送られるため利用する必要はないはずです。
set_debug_output(f) -> ()
[permalink][rdoc]debug_output=(f)
デバッグ出力の出力先を指定します。このメソッドは深刻なセキュリティホールの原因となりえます。デバッグ用にのみ利用してください。
disable_ssl -> ()
[permalink][rdoc]disable_tls -> ()
その Net::SMTP オブジェクトが SMTPS を利用しないよう設定します。
[SEE_ALSO] Net::SMTP#disable_tls, Net::SMTP#tls?
disable_starttls -> ()
[permalink][rdoc]その Net::SMTP オブジェクトがSTARTTLSを常に使わないよう設定します。
[SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#enable_starttls, Net::SMTP#enable_starttls_auto
ehlo(domain) -> Net::SMTP::Response
[permalink][rdoc]EHLO コマンドを送ります(ESMTP を使います)。
通常は Net::SMTP.start, Net::SMTP#start で EHLO が送られるため利用する必要はないはずです。
enable_ssl(context = Net::SMTP.default_ssl_context) -> ()
[permalink][rdoc]enable_tls(context = Net::SMTP.default_ssl_context) -> ()
その Net::SMTP オブジェクトが SMTPS を利用するよう設定します。
このメソッドは Net::SMTP#start を呼ぶ前に呼ぶ必要があります。
[SEE_ALSO] Net::SMTP#tls?, Net::SMTP#disable_tls
enable_starttls(context = Net::SMTP.default_ssl_context) -> ()
[permalink][rdoc]その Net::SMTP オブジェクトが 常にSTARTTLSを利用する (利用できない場合には例外を発生する)ように設定します。
[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]その Net::SMTP オブジェクトがSTARTTLSが利用可能な場合 (つまりサーバがSTARTTLSを広告した場合)のみにSTARTTLSを利用するように設定します。
[SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#starttls_auto?, Net::SMTP#enable_starttls_auto
[SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#starttls_auto?, Net::SMTP#enable_starttls
esmtp? -> bool
[permalink][rdoc]esmtp -> bool
その Net::SMTP オブジェクトが ESMTP を使う場合に真を返します。デフォルトは真です。
[SEE_ALSO] Net::SMTP#esmtp=
esmtp=(bool)
[permalink][rdoc]その Net::SMTP オブジェクトが ESMTP を使うかどうかを指定します。
この指定は Net::SMTP#start を呼ぶ前にする必要があります。 ESMTPモードで Net::SMTP#start を呼び、うまくいかなかった場合には 普通の SMTP モードに切り替えてやりなおします (逆はしません)。
[SEE_ALSO] Net::SMTP#esmtp?
finish -> ()
[permalink][rdoc]SMTP セッションを終了します。
[SEE_ALSO] Net::SMTP#start
helo(domain) -> Net::SMTP::Response
[permalink][rdoc]HELO コマンドを送ります(標準的な SMTP を使います)。
通常は Net::SMTP.start, Net::SMTP#start で HELO が送られるため利用する必要はないはずです。
inspect -> String
[permalink][rdoc][SEE_ALSO] Object#inspect
mailfrom(from_addr) -> Net::SMTP::Response
[permalink][rdoc]MAILFROM コマンドを送ります。
通常は Net::SMTP#send_message, Net::SMTP#open_message_stream で MAILFROM が送られるため利用する必要はないはずです。
open_message_stream(from_addr, *to_addrs) {|f| .... } -> ()
[permalink][rdoc]ready(from_addr, *to_addrs) {|f| .... } -> ()
メール書き込みの準備をし、書き込み先のストリームオブジェクトをブロックに渡します。ブロック終了後、書きこんだ結果が送られます。
渡されるストリームオブジェクトは以下のメソッドを持っています。
from_domain は送り主のメールアドレス ('...@...'のかたち) 、 to_addrs には送信先メールアドレスを文字列で渡します。
require 'net/smtp' Net::SMTP.start('smtp.exmaple.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 です。
[SEE_ALSO] Net::SMTP#send_message
open_timeout -> Integer
[permalink][rdoc]接続時に待つ最大秒数を返します。
デフォルトは30(秒)です。この秒数たってもコネクションが開かなければ例外 TimeoutError を発生します。
[SEE_ALSO] Net::SMTP#open_timeout=
open_timeout=(n)
[permalink][rdoc]接続時に待つ最大秒数を設定します。
[SEE_ALSO] Net::SMTP#open_timeout
port -> Integer
[permalink][rdoc]接続先のポート番号を返します。
quit -> Net::SMTP::Response
[permalink][rdoc]QUIT コマンドを送ります。
通常は Net::SMTP#finish で QUIT が送られるため利用する必要はないはずです。
rcptto(to_addr) -> Net::SMTP::Response
[permalink][rdoc]RCPTTO コマンドを送ります。
通常は Net::SMTP#send_message, Net::SMTP#open_message_stream で RCPTTO が送られるため利用する必要はないはずです。
rcptto_list(to_addrs) { ... } -> object
[permalink][rdoc]RCPTTO コマンドを to_addrs のすべてのメールアドレスに対して送ります。
コマンドを送った後、ブロックを呼び出します。このメソッドの返り値はブロックの返り値になります。
通常は Net::SMTP#send_message, Net::SMTP#open_message_stream で RCPTTO が送られるため利用する必要はないはずです。
read_timeout -> Integer
[permalink][rdoc]読みこみ (read(2) 一回) でブロックしてよい最大秒数を返します。
デフォルトは60(秒)です。この秒数たっても読みこめなければ例外 TimeoutError を発生します。
[SEE_ALSO] Net::SMTP#read_timeout=
read_timeout=(n)
[permalink][rdoc]読み込みでブロックしてよい最大秒数を設定します。
[SEE_ALSO] Net::SMTP#read_timeout
rset -> Net::SMTP::Response
[permalink][rdoc]RSET コマンドを送ります。
send_message(mailsrc, from_addr, *to_addrs) -> ()
[permalink][rdoc]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 です。
tls? -> bool
[permalink][rdoc]ssl? -> bool
その Net::SMTP オブジェクトが SMTPS を利用するならば真を返します。
[SEE_ALSO] Net::SMTP#enable_tls, Net::SMTP#disable_tls, Net::SMTP#start
start(helo_domain = 'localhost', account = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) -> Net::SMTP
[permalink][rdoc]start(helo_domain = 'localhost', account = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) {|smtp| .... } -> object
サーバにコネクションを張り、同時に SMTP セッションを開始します。
もしすでにセッションが開始していたら IOError が発生します。
account と password の両方が与えられた場合、 SMTP AUTH コマンドによって認証を行います。 authtype は使用する認証のタイプで、シンボルで :plain, :login, :cram_md5 を指定します。
このメソッドにブロックを与えた場合には、そのオブジェクトを引数としてそのブロックを呼び、ブロック終了時に自動的に接続を閉じます。ブロックを与えなかった場合には自分自身を返します。この場合終了時に Net::SMTP#finish を呼ぶのは利用者の責任となります。
started? -> bool
[permalink][rdoc]SMTP セッションが開始されていたら真を返します。
セッションがまだ開始していない、もしくは終了している場合には偽を返します。
[SEE_ALSO] Net::SMTP#start, Net::SMTP#finish
starttls -> Net::SMTP::Response
[permalink][rdoc]STARTTLS コマンドを送ります。
通常は Net::SMTP#start で STARTTLS が送られるため利用する必要はないはずです。
starttls? -> Symbol/nil
[permalink][rdoc]その Net::SMTP オブジェクトが STARTTLSを利用するかどうかを返します。
常に利用する(利用できないときは Net::SMTP#start で例外 Net::SMTPUnsupportedCommand を発生) するときは :always を、利用可能な場合のみ利用する場合は :auto を、常に利用しない場合には nil を返します。
[SEE_ALSO] Net::SMTP#start
starttls_always? -> bool
[permalink][rdoc]その Net::SMTP オブジェクトが 常にSTARTTLSを利用する (利用できない場合には例外を発生する)ならば真を返します。
[SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#starttls_auto?, Net::SMTP#enable_starttls
starttls_auto? -> bool
[permalink][rdoc]その Net::SMTP オブジェクトが利用可能な場合にのみにSTARTTLSを利用するならば真を返します。
[SEE_ALSO] Net::SMTP#starttls?, Net::SMTP#starttls_always?, Net::SMTP#enable_starttls_auto
DEFAULT_AUTH_TYPE -> Symbol
[permalink][rdoc]デフォルトの認証スキーム(:plain)です。
Revision -> String
[permalink][rdoc]ファイルのリビジョンです。使わないでください。