=begin = net/pop.rb == ���Υ饤�֥��ˤĤ��� �᡼���������뤿��Υץ��ȥ��� POP3 (Post Office Protocol version 3) �� �򰷤��饤�֥��Ǥ���POP3 �μ����� [RFC1939] (()) �˴𤤤Ƥ��ޤ��� == ������ === �᡼��μ��� �ʲ��Υ����ɤϡ��᡼���������ƥե����� 'inbox/1' 'inbox/2'... �� �񤭤��ߡ������о夫��᡼���ä��ޤ���pop3.server.address ��Ŭ�� �ɤߤ����Ƥ��������� require 'net/pop' pop = Net::POP3.new( 'pop3.server.address', 110 ) pop.start( 'YourAccount', 'YourPassword' ) ### if pop.mails.empty? then puts 'no mail.' else i = 0 pop.each_mail do |m| # or "pop.mails.each ..." File.open( 'inbox/' + i.to_s, 'w' ) {|f| f.write m.pop } m.delete i += 1 end puts "#{pop.mails.size} mails popped." end pop.finish ### POP �����Фϥͥåȥ���Τळ����¸�ߤ���Τǡ��ʤˤ��Ż��򤵤��� �ˤϤ������˳��ϼ�³���򡢽���ä��齪λ��³���򡢹Ԥ�ʤ���Ф��� �ޤ��󡣤����Ԥ��Τ� Net::POP3#start �� #finish �ǡ�POP3 ���֥������� �Ϥ�����ĤΥ᥽�åɤδ֤Ǥ���ͭ���ˤʤ�ޤ��� �����о�Υ᡼��� POPMail ���֥������ȤȤ���ɽ������Ƥ��ꡢ���� ���֥������ȤΥ᥽�åɤ�Ƥ֤��Ȥǥ᡼����äƤ�����ä����ꤹ�� ���Ȥ��Ǥ��ޤ���POP3#mails �Ϥ��� POPMail ���֥������Ȥ�����Ǥ��ꡢ POP3#each_mail �Ϥ���� mails.each �Υ��硼�ȥ��åȤǤ��� === û������ �����Ϥ����ƾ�ά��û���ѥ᥽�åɤ��򤱤�����ˤ��ʤ��Ĺ�Ǥ��� �ޤ����֥��å��դ��� Net::POP3.start ��Ȥ����Ȥ� POP3.new #start #finish ��ʻ��Ǥ��ޤ��� require 'net/pop' Net::POP3.start( 'pop3.server.address', 110 ) 'YourAccount', 'YourPassword' ) if pop.mails.empty? then puts 'no mail.' else i = 0 pop.each_mail do |m| # or "pop.mails.each ..." File.open( 'inbox/' + i.to_s, 'w' ) {|f| f.write m.pop } m.delete i += 1 end puts "#{pop.mails.size} mails popped." end } POP3#delete_all ��Ȥ��Ȥ���� #each_mail �� m.delete �� ʻ��Ǥ��ޤ��� require 'net/pop' Net::POP3.start( 'pop3.server.address', 110, 'YourAccount', 'YourPassword' ) {|pop| if pop.mails.empty? then puts 'no mail.' else i = 0 pop.delete_all do |m| File.open( 'inbox/' + i.to_s, 'w' ) {|f| f.write m.pop } i += 1 end end } ���饹�᥽�åɤ� POP3.delete_all ��Ȥ��Ȥ����û���ʤ�ޤ��� require 'net/pop' i = 0 Net::POP3.delete_all( 'pop3.server.address', 110, 'YourAccount', 'YourPassword' ) do |m| File.open( 'inbox/' + i.to_s, 'w' ) {|f| f.write m.pop } i += 1 end === �ե������ľ�ܽ� ����ޤǤ���Ǥ� m.pop ����ʬ�ǥ᡼���ҤȤĤ�ʸ����Ȥ��� �����ȤäƤ��ޤ����������Ȥ��� 3MB ���餤�������ʥ᡼��ξ��� ����ǤϤޤ�����礬����ޤ������Τ褦�ʾ��ϰʲ��Τ褦�� m.pop �� File ���֥������Ȥ�Ϳ����꤬�Ȥ��ޤ��� require 'net/pop' Net::POP3.delete_all( 'pop3.server.address', 110, 'YourAccount', 'YourPassword' ) do |m| File.open( 'inbox', 'w' ) {|f| m.pop f #### } end === APOP Net::POP3 ���饹�Τ����� Net::APOP ���饹��Ȥ��ȡ�ǧ�ڻ��� APOP �� �Ȥ��褦�ˤʤ�ޤ����ޤ�ưŪ�˥Ρ��ޥ� POP �� APOP �����򤹤�ˤϡ� �ʲ��Τ褦�� Net::POP3.APOP() �᥽�åɤ�Ȥ��Τ������Ǥ��� require 'net/pop' # use APOP authentication if $isapop == true pop = Net::POP3.APOP($isapop).new( 'apop.server.address', 110 ) pop.start( YourAccount', 'YourPassword' ) {|pop| # Rest code is same. } ������ˡ�ϥ��饹���Τ��Ѥ���Τǡ����饹�᥽�åɤ� start �� foreach�� delete_all��auth_only �ʤɤ� APOP �ȤȤ�˻Ȥ��ޤ��� == Net::POP3 class === ���饹�᥽�å� : new( address, port = 110, apop = false ) Net::POP3 ���֥������Ȥ��������ޤ����ޤ���³�Ϥ��ޤ��� apop �����ΤȤ��� APOP ǧ�ڤ�Ԥ����֥������Ȥ��������ޤ��� : start( address, port = 110, account, password ) : start( address, port = 110, account, password ) {|pop| .... } address �� port �֥ݡ��Ȥ���³������������� account �ѥ���� password �� POP �������󤷤ޤ���������� port �� nil ���Ϥ��� POP3 �Υǥե���ȥݡ���(110)��Ȥ��ޤ��� Net::POP3.start( addr, port, account, password ) {|pop| pop.each_mail do |m| file.write m.pop m.delete end } : APOP( is_apop ) bool �����ʤ� Net::APOP ���饹�����ʤ� Net::POP3 ���饹���֤��ޤ��� �ʲ�����Τ褦�˻ȤäƤ��������� # example 1 pop = Net::POP3::APOP($isapop).new( addr, port ) # example 2 Net::POP3::APOP($isapop).start( addr, port ) {|pop| .... } : foreach( address, port = 110, account, password ) {|mail| .... } POP ���å����򳫤��������о�Τ��٤ƤΥ᡼����Ф��Ʒ����֤��ޤ��� �ʲ���Ʊ���Ǥ��� Net::POP3.start( address, port, account, password ) {|pop| pop.each_mail do |m| yield m end } # example Net::POP3.foreach( 'your.pop.server', 110, 'YourAccount', 'YourPassword' ) do |m| file.write m.pop m.delete if $DELETE end : delete_all( address, port = 110, account, password ) : delete_all( address, port = 110, account, password ) {|mail| .... } POP ���å����򳫤��������о�Υ᡼��򤹤٤ƺ�����ޤ��� �֥��å���Ϳ����줿���Ϻ���������˥֥��å��ˤ��Υ᡼��� �Ϥ��ޤ����ʲ���Ʊ���Ǥ��� # example Net::POP3.delete_all( addr, nil, 'YourAccount', 'YourPassword' ) do |m| m.pop file end : auth_only( address, port = 110, account, password ) POP ���å����򳫤�ǧ�ڤ�����Ԥä���³���ڤ�ޤ��� POP before SMTP ���ѤǤ��� # example Net::POP3.auth_only( 'your.pop3.server', nil, # using default (110) 'YourAccount', 'YourPassword' ) === �᥽�å� : start( account, password ) : start( account, password ) {|pop| .... } ��⡼�ȥۥ��ȤȤ���³�򳫻Ϥ�����������Ȥ� account�� �ѥ���ɤ� password ��Ȥä� POP �������󤷤ޤ��� : active? POP3 ���å���󤬳��Ϥ���Ƥ����鿿�� : address ��³���륢�ɥ쥹 : port ��³����ݡ����ֹ� : open_timeout : open_timeout=(n) ��³�����Ԥĺ����ÿ��������ÿ����äƤ⥳�ͥ������ �����ʤ�����㳰 TimeoutError ��ȯ�����ޤ��� : read_timeout : read_timeout=(n) �ɤߤ��� (read(1) ���) �ǥ֥��å����Ƥ褤�����ÿ��� �����ÿ����äƤ��ɤߤ���ʤ�����㳰 TimeoutError ��ȯ�����ޤ��� : finish POP3 ���å�����λ���ޤ������å���󳫻����ˤ��Υ᥽�åɤ� �ƤФ줿�����㳰 IOError ��ȯ�����ޤ��� : mails Net::POPMail ���֥������Ȥ�����򤫤����ޤ��� ��������ϥ��å����򳫻Ϥ����Ȥ��˼�ưŪ�˹�������ޤ��� : each_mail {|popmail| .... } : each {|popmail| .... } pop3.mails.each ��Ʊ���Ǥ��� : delete_all : delete_all {|popmail| .... } �����о�Υ᡼������ƾõ�ޤ��� �֥��å���Ϳ����줿�Ȥ��Ͼõ�����ˤ��� POPMail ���֥������Ȥ� �֥��å����Ϥ��ޤ��� # example n = 1 pop.delete_all do |m| File.open("inbox/#{n}") {|f| f.write m.pop } n += 1 end : auth_only( account, password ) POP ���å����򳫤�ǧ�ڤ�����Ԥä���³���ڤ�ޤ��� POP before SMTP ���ѤǤ��� # example pop = Net::POP3.new( 'your.pop3.server' ) pop.auth_only 'YourAccount', 'YourPassword' : reset ���å�����ꥻ�åȤ��ޤ��� ����Ū�ˤ� POPMail#delete �Ǿä����᡼�뤬�������褷�ޤ��� (POP3 �Ǥϥ᡼���Ĥ��������褹����ˡ�Ϥ���ޤ���) == Net::APOP ���Υ��饹�ǤϿ������᥽�åɤ�Ƴ�����Ƥ��ޤ��� ǧ�������� APOP ���Ѥ������Ǥ��� === �����ѡ����饹 Net::POP3 == Net::POPMail POP �����С���Υ᡼����̤����Ū��ɽ�����륯�饹�� �᡼��μ�����õ�Ȥ��ä����򥫥ץ��벽���ޤ��� === �᥽�å� : pop( dest = '' ) �᡼���������� dest �� << �᥽�åɤ�Ȥäƽ񤭤��ߤޤ��� dest ���֤��ޤ��� # example allmails = nil POP3.start( 'your.pop3.server', 110, 'YourAccount, 'YourPassword' ) {|pop| allmails = pop.mails.collect {|popmail| popmail.pop } } : pop {|str| .... } �᡼���ʸ����򾯤��Ť��ɤߤ��ߡ��缡�֥��å���Ϳ���ޤ��� # example POP3.start( 'localhost', 110 ) {|pop3| pop3.each_mail do |m| m.pop do |str| # do anything end end } : header �إå��������������ʸ������֤��ޤ��� : top( lines ) �᡼��إå��� lines �Ԥ֤����ʸ�������ʸ������֤��ޤ��� : delete �����о夫��᡼��������ޤ��� : size �᡼��Υ����� (ñ�̤ϥХ���) �򤫤����ޤ��� : deleted? �᡼�뤬�����о�Ǿõ��Ƥ���Ȥ������õ�Ƥ��ޤä��� POP3#reset ��Ȥ��ʳ������褹����ˡ�Ϥ���ޤ��� =end