class Net::POP3

[edit]

aliases: Net::POP, Net::POPSession

要約

POP3 のセッションを表すクラスです。

目次

特異メソッド
インスタンスメソッド
定数

特異メソッド

APOP(is_apop) -> Class[permalink][rdoc][edit]

bool が真なら Net::APOP クラス、偽なら Net::POP3 クラスを返します。

使用例:

require 'net/pop'

pop = Net::POP3::APOP($isapop).new(addr, port)
pop.start(account, password) {
  ....
}
[PARAM] is_apop:
真の場合に Net::APOP を返します。
auth_only(address, port = nil, account, password, isapop=false)[permalink][rdoc][edit]

POP セッションを開き、認証だけを行って接続を切ります。

主に POP before SMTP のために用意されています。

使用例:

require 'net/pop'

Net::POP3.auth_only('pop.example.com', nil,     # using default port (110)
                    'YourAccount', 'YourPassword')
[PARAM] address:
POP3サーバのホスト名文字列
[PARAM] port:
接続するPOP3サーバのポート番号
[PARAM] account:
アカウント名文字列
[PARAM] password:
パスワード文字列
[PARAM] isapop:
真でAPOPを利用します
[EXCEPTION] Net::POPAuthenticationError:
認証に失敗した、もしくはAPOPを利用しようとしたがサーバがAPOPを提供していない場合に発生します
[EXCEPTION] Net::POPError:
サーバが認証失敗以外のエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します
certs -> String|nil[permalink][rdoc][edit]

SSL のパラメータの ca_file (なければ ca_path) を返します。

どちらも設定されていない場合は nil を返します。

[SEE_ALSO] OpenSSL::SSL::SSLContext#ca_file, OpenSSL::SSL::SSLContext#ca_path

default_port -> Integer[permalink][rdoc][edit]
default_pop3_port -> Integer

POP3 のデフォルトのポート番号(110)を返します。

default_pop3s_port -> Integer[permalink][rdoc][edit]

デフォルトのPOP3Sのポート番号(995)を返します。

delete_all(address, port = nil, account, password, isapop=false) -> ()[permalink][rdoc][edit]
delete_all(address, port = nil, account, password, isapop=false) {|mail| .... } -> ()

POP セッションを開始し、サーバ上のメールを全て消去します。

ブロックを与えられたときは消去する前に各メールを引数としてブロックを呼びだします。メールは Net::POPMail のインスタンスとして渡されます。

port に nil を渡すと、適当なポート(通常は110、SSL利用時には 995)を使います。

使用例:

require 'net/pop'

Net::POP3.delete_all(addr, nil, 'YourAccount', 'YourPassword') do |m|
  puts m.pop
end
[PARAM] address:
POP3サーバのホスト名文字列
[PARAM] port:
接続するPOP3サーバのポート番号
[PARAM] account:
アカウント名文字列
[PARAM] password:
パスワード文字列
[PARAM] isapop:
真でAPOPを利用します
[EXCEPTION] TimeoutError:
接続がタイムアウトした場合に発生します
[EXCEPTION] Net::POPAuthenticationError:
認証に失敗した、もしくはAPOPを利用しようとしたがサーバがAPOPを提供していない場合に発生します
[EXCEPTION] Net::POPError:
サーバが認証失敗以外のエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します

[SEE_ALSO] Net::POP3.start, Net::POP3#delete_all

disable_ssl -> ()[permalink][rdoc][edit]

新しく生成する Net::POP3 オブジェクトが SSL を利用しないように設定します。

[SEE_ALSO] Net::POP3.enable_ssl, Net::POP3.use_ssl?

enable_ssl(verify_or_params={}, certs=nil) -> ()[permalink][rdoc][edit]

新しく生成する Net::POP3 オブジェクトが SSL による通信利用するように設定します。

verify_or_params にハッシュを渡した場合には、接続時に生成される OpenSSL::SSL::SSLContext オブジェクトの OpenSSL::SSL::SSLContext#set_params に渡されます。 certs は無視されます。

verify_or_params がハッシュでない場合には、接続時に生成される OpenSSL::SSL::SSLContext オブジェクトの OpenSSL::SSL::SSLContext#set_params

{ :verify_mode => verify_or_params, :ca_path => certs }

というハッシュが渡されます。

[PARAM] verify_or_params:
SSLの設定のハッシュ、もしくは SSL の verify_mode
[PARAM] certs:
SSL の ca_path

[SEE_ALSO] Net::POP3.disable_ssl, Net::POP3.use_ssl?

foreach(address, port = nil, account, password, isapop=false) {|mail| .... } -> ()[permalink][rdoc][edit]

POP セッションを開始し、サーバ上のすべてのメールを取りだし、個々のメールを引数としてブロックを呼びだします。

個々のメールは Net::POPMail のインスタンスで渡されます。

port に nil を渡すと、適当なポート(通常は110、SSL利用時には 995)を使います。

以下のコードと同様の処理をします。

require 'net/pop'

Net::POP3.start(address, port, account, password, isapop=false) {|pop|
  pop.each_mail do |m|
    yield m
  end
}

使用例:

require 'net/pop'

Net::POP3.foreach('pop.example.com', 110,
                  'YourAccount', 'YourPassword') do |m|
  file.write m.pop
  m.delete if $DELETE
end
[PARAM] address:
POP3サーバのホスト名文字列
[PARAM] port:
接続するPOP3サーバのポート番号
[PARAM] account:
アカウント名文字列
[PARAM] password:
パスワード文字列
[PARAM] isapop:
真でAPOPを利用します
[EXCEPTION] TimeoutError:
接続がタイムアウトした場合に発生します
[EXCEPTION] Net::POPAuthenticationError:
認証に失敗した、もしくはAPOPを利用しようとしたがサーバがAPOPを提供していない場合に発生します
[EXCEPTION] Net::POPError:
サーバが認証失敗以外のエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します

[SEE_ALSO] Net::POP3.start, Net::POP3#each_mail

new(address, port = nil, apop = false) -> Net::POP3[permalink][rdoc][edit]

Net::POP3 オブジェクトを生成します。

このメソッドではサーバの接続は行いません。 apop が真のときは APOP 認証を行うオブジェクトを生成します。

port に nil を渡すと、適当なポート(通常は110、SSL利用時には 995)を使います。

[PARAM] address:
POP3サーバのホスト名文字列
[PARAM] port:
接続するPOP3サーバのポート番号
[PARAM] apop:
真の場合にはAPOPで認証します

[SEE_ALSO] Net::POP3#start

socket_type -> Class[permalink][rdoc][edit]

このメソッドは obsolete です。使わないでください。

ssl_params -> Hash|nil[permalink][rdoc][edit]

SSL での接続を有効にしている場合には、 SSL の設定のハッシュを返します。

このハッシュは、接続時に生成される OpenSSL::SSL::SSLContext オブジェクトの OpenSSL::SSL::SSLContext#set_params に渡されます。このハッシュを変更することで、利用されるパラメータが変更されます。

SSL を有効にしていない場合には nil を返します。

start(address, port = nil, account=nil, password=nil, isapop=false) -> Net::POP3[permalink][rdoc][edit]
start(address, port = nil, account=nil, password=nil, isapop=false) {|pop| .... } -> object

Net::POP3 オブジェクトを生成し、サーバへ接続します。

ブロックを与えない場合には生成したオブジェクトを返します。

ブロックを与えた場合には、生成した Net::POP3 オブジェクトがブロックに渡され、ブロックが終わったときにセッションを終了させます。この場合返り値はブロックの返り値となります。

port に nil を渡すと、適当なポート(通常は110、SSL利用時には 995)を使います。

以下のコードと同じ動作をします。

require 'net/pop'

Net::POP3.new(address, port, isapop).start(account, password)

使用例:

require 'net/pop'

Net::POP3.start(addr, port, account, password) {|pop|
  pop.each_mail do |m|
    file.write m.pop
    m.delete
  end
}
[PARAM] address:
POP3サーバのホスト名文字列
[PARAM] port:
接続するPOP3サーバのポート番号
[PARAM] account:
アカウント名文字列
[PARAM] password:
パスワード文字列
[PARAM] isapop:
真でAPOPを利用します
[EXCEPTION] TimeoutError:
接続がタイムアウトした場合に発生します
[EXCEPTION] Net::POPAuthenticationError:
認証に失敗した、もしくはAPOPを利用しようとしたがサーバがAPOPを提供していない場合に発生します
[EXCEPTION] Net::POPError:
サーバが認証失敗以外のエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します

[SEE_ALSO] Net::POP3#start

use_ssl? -> bool[permalink][rdoc][edit]

新しく生成する Net::POP3 オブジェクトが SSL による通信利用するならば真を返します。

verify -> Integer|nil[permalink][rdoc][edit]

SSL のパラメータの verify_mode を返します。

設定されていない場合は nil を返します。

[SEE_ALSO] OpenSSL::SSL::SSLContext#verify_mode

インスタンスメソッド

started? -> bool[permalink][rdoc][edit]
active? -> bool

POP3 セッションが開始されていたら真を返します。

active? は obsolete です。

address -> String[permalink][rdoc][edit]

接続するアドレスです。

apop? -> bool[permalink][rdoc][edit]

このインスタンスが APOP を使ってサーバに接続するなら true を返します。

auth_only(account, password) -> ()[permalink][rdoc][edit]

POP セッションを開き、認証だけを行って接続を切ります。

主に POP before SMTP のために用意されています。

使用例:

require 'net/pop'

pop = Net::POP3.new('pop.example.com')
pop.auth_only 'YourAccount', 'YourPassword'
[PARAM] account:
アカウント名文字列
[PARAM] password:
パスワード文字列
[EXCEPTION] IOError:
セッションが既に開始されている場合に発生します
[EXCEPTION] Net::POPAuthenticationError:
認証に失敗した、もしくはAPOPを利用しようとしたがサーバがAPOPを提供していない場合に発生します
[EXCEPTION] Net::POPError:
サーバが認証失敗以外のエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します
delete_all -> ()[permalink][rdoc][edit]
delete_all {|popmail| .... } -> ()

サーバ上のメールを全て消去します。

ブロックを与えられたときは消去する前に各メールを引数としてブロックを呼びだします。メールは Net::POPMail のインスタンスとして渡されます。

使用例:

require 'net/pop'

n = 1
pop.delete_all do |m|
  File.open("inbox/#{n}") {|f| f.write m.pop }
  n += 1
end
disable_ssl -> ()[permalink][rdoc][edit]

このインスタンスが SSL による通信を利用しないように設定します。

[SEE_ALSO] Net::POP3#enable_ssl, Net::POP3#disable_ssl, Net::POP3#use_ssl?, Net::POP3.enable_ssl

each_mail {|popmail| .... } -> [Net::POPMail][permalink][rdoc][edit]
each {|popmail| .... } -> [Net::POPMail]

サーバ上の各メールを引数としてブロックを呼びだします。

メールは Net::POPMail のインスタンスとして渡されます。

pop3.mails.each と同じです。

[EXCEPTION] TimeoutError:
接続がタイムアウトした場合に発生します
[EXCEPTION] Net::POPError:
サーバがエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します
enable_ssl(verify_or_params={}, certs=nil) -> ()[permalink][rdoc][edit]

このインスタンスが SSL による通信を利用するように設定します。

verify_or_params にハッシュを渡した場合には、接続時に生成される OpenSSL::SSL::SSLContext オブジェクトの OpenSSL::SSL::SSLContext#set_params に渡されます。 certs は無視されます。

verify_or_params がハッシュでない場合には、接続時に生成される OpenSSL::SSL::SSLContext オブジェクトの OpenSSL::SSL::SSLContext#set_params

{ :verify_mode => verify_or_params, :ca_path => certs }

というハッシュが渡されます。

[PARAM] verify_or_params:
SSLの設定のハッシュ、もしくは SSL の設定の verify_mode
[PARAM] certs:
SSL の設定の ca_path

[SEE_ALSO] Net::POP3.enable_ssl, Net::POP3#disable_ssl, Net::POP3#use_ssl?

finish -> ()[permalink][rdoc][edit]

POP3 セッションを終了し、接続を閉じます。

[EXCEPTION] IOError:
セッション開始前にこのメソッドを呼ぶと発生します
mails -> [Net::POPMail][permalink][rdoc][edit]

サーバ上の全てのメールを、Net::POPMailオブジェクトの配列として返します。

この配列はメールを最初に取得しようとしたときに生成され、セッションの間キャッシュされます。

[EXCEPTION] TimeoutError:
接続がタイムアウトした場合に発生します
[EXCEPTION] Net::POPError:
サーバがエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します
n_bytes -> Integer[permalink][rdoc][edit]

サーバにあるメールの総バイト数を返します。

[SEE_ALSO] Net::POP3#n_mails

[EXCEPTION] TimeoutError:
接続がタイムアウトした場合に発生します
[EXCEPTION] Net::POPError:
サーバがエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します
n_mails -> Integer[permalink][rdoc][edit]

サーバにあるメールの数を返します。

[SEE_ALSO] Net::POP3#n_bytes

[EXCEPTION] TimeoutError:
接続がタイムアウトした場合に発生します
[EXCEPTION] Net::POPError:
サーバがエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します
open_timeout -> Integer[permalink][rdoc][edit]

接続時に待つ最大秒数を返します。

この秒数たってもコネクションが開かないときは例外 Net::OpenTimeout を発生します。

デフォルトは30秒です。

[SEE_ALSO] Net::POP3#open_timeout=

open_timeout=(n)[permalink][rdoc][edit]

接続時に待つ最大秒数を設定します。

[PARAM] n:
タイムアウトまでの秒数

[SEE_ALSO] Net::POP3#open_timeout

port -> Integer[permalink][rdoc][edit]

接続するポート番号です。

read_timeout -> Integer[permalink][rdoc][edit]

読み込みでブロックしてよい最大秒数を返します。

この秒数たっても読みこめなければ例外 ReadTimeout を発生します。

デフォルトは60秒です。

[SEE_ALSO] Net::POP3#read_timeout=

read_timeout=(n)[permalink][rdoc][edit]

読み込みでブロックしてよい最大秒数を設定します。

この秒数たっても読みこめなければ例外 ReadTimeout を発生します。

[PARAM] n:
タイムアウトまでの秒数

[SEE_ALSO] Net::POP3#read_timeout

reset -> ()[permalink][rdoc][edit]

セッションをリセットします。

リセットによって Net::POPMail#delete で付けた削除マークがすべて取り除かれます。

POP3 ではメール一個だけを復活する方法はありません。

set_debug_output(f) -> ()[permalink][rdoc][edit]

デバッグ用の出力 f をセットします。

このメソッドは深刻なセキュリティホールの原因となりえます。デバッグ以外の用途では使わないでください。

f は << メソッドを持っているオブジェクトでなければなりません。

使用例:

require 'net/pop'

pop = Net::POP3.new('pop.example.com', 110)
pop.set_debug_output $stderr
pop.start('YourAccount', 'YourPassword') {
  p pop.n_bytes
}

実行結果:

POP session started: pop.example.com:110 (POP)
-> "+OK popd <1162042773.26346.155555a1861c@pop.example.com>\r\n"
<- "APOP YourAccount XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n"
-> "+OK\r\n"
<- "STAT\r\n"
-> "+OK 37 339936\r\n"
339936
<- "QUIT\r\n"
-> "+OK\r\n"
start(account, password) -> self[permalink][rdoc][edit]
start(account, password) {|pop| .... } -> object

サーバへ接続し、POP3のセッションを開始します。

ブロックが渡された場合にはセッション開始後そのオブジェクト自身を引数としてブロックが呼びだされます。ブロック終了時にセッションを終了させます。

ブロックが渡されなかった場合にはそのオブジェクト自身を返します。この場合セッションを終了させるのはユーザの責任となります。

[PARAM] account:
アカウント名文字列
[PARAM] password:
パスワード文字列
[EXCEPTION] IOError:
セッションが既に開始されている場合に発生します
[EXCEPTION] TimeoutError:
接続がタイムアウトした場合に発生します
[EXCEPTION] Net::POPAuthenticationError:
認証に失敗した、もしくはAPOPを利用しようとしたがサーバがAPOPを提供していない場合に発生します
[EXCEPTION] Net::POPError:
サーバが認証失敗以外のエラーを報告した場合に発生します
[EXCEPTION] Net::POPBadResponse:
サーバからの応答がプロトコル上不正であった場合に発生します
use_ssl? -> bool[permalink][rdoc][edit]

このインスタンスが SSL を使って接続するなら真を返します。

[SEE_ALSO] Net::POP3#enable_ssl, Net::POP3#disable_ssl

定数

Revision -> String[permalink][rdoc][edit]

ライブラリ(ファイル)のリビジョンです。使わないでください。