Class: Mail::Tester::MailTester
- Inherits:
-
Object
- Object
- Mail::Tester::MailTester
- Defined in:
- lib/mail_tester.rb
Instance Attribute Summary collapse
-
#domain ⇒ Object
readonly
Returns the value of attribute domain.
-
#email ⇒ Object
readonly
Returns the value of attribute email.
-
#password ⇒ Object
readonly
Returns the value of attribute password.
-
#pop3_hostname ⇒ Object
readonly
Returns the value of attribute pop3_hostname.
-
#pop3_server ⇒ Object
readonly
Returns the value of attribute pop3_server.
-
#smtp_hostname ⇒ Object
readonly
Returns the value of attribute smtp_hostname.
-
#smtp_server ⇒ Object
readonly
Returns the value of attribute smtp_server.
-
#user ⇒ Object
readonly
Returns the value of attribute user.
Instance Method Summary collapse
- #check_mail ⇒ Object
- #check_smtp ⇒ Object
- #delete_mail(search) ⇒ Object
-
#initialize(email, password, realname = "") ⇒ MailTester
constructor
A new instance of MailTester.
- #search_mail(search) ⇒ Object
Constructor Details
#initialize(email, password, realname = "") ⇒ MailTester
Returns a new instance of MailTester.
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/mail_tester.rb', line 11 def initialize(email, password, realname="") @email = email @password = password @realname = realname @user, @domain = @email.split('@') @pop3_hostname = 'pop3.' + @domain @smtp_hostname = 'smtp.' + @domain @pop3_server = Net::POP3.new(@pop3_hostname) @smtp_server = Net::SMTP.start(@smtp_hostname, 587) end |
Instance Attribute Details
#domain ⇒ Object (readonly)
Returns the value of attribute domain.
9 10 11 |
# File 'lib/mail_tester.rb', line 9 def domain @domain end |
#email ⇒ Object (readonly)
Returns the value of attribute email.
9 10 11 |
# File 'lib/mail_tester.rb', line 9 def email @email end |
#password ⇒ Object (readonly)
Returns the value of attribute password.
9 10 11 |
# File 'lib/mail_tester.rb', line 9 def password @password end |
#pop3_hostname ⇒ Object (readonly)
Returns the value of attribute pop3_hostname.
9 10 11 |
# File 'lib/mail_tester.rb', line 9 def pop3_hostname @pop3_hostname end |
#pop3_server ⇒ Object (readonly)
Returns the value of attribute pop3_server.
9 10 11 |
# File 'lib/mail_tester.rb', line 9 def pop3_server @pop3_server end |
#smtp_hostname ⇒ Object (readonly)
Returns the value of attribute smtp_hostname.
9 10 11 |
# File 'lib/mail_tester.rb', line 9 def smtp_hostname @smtp_hostname end |
#smtp_server ⇒ Object (readonly)
Returns the value of attribute smtp_server.
9 10 11 |
# File 'lib/mail_tester.rb', line 9 def smtp_server @smtp_server end |
#user ⇒ Object (readonly)
Returns the value of attribute user.
9 10 11 |
# File 'lib/mail_tester.rb', line 9 def user @user end |
Instance Method Details
#check_mail ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/mail_tester.rb', line 24 def check_mail result = '' @pop3_server.start(@email, @password) if @pop3_server.mails.empty? result += 'No mail.' else i = 0 @pop3_server.each_mail do |m| i += 1 end result += "#{@pop3_server.mails.size} mails popped." end @pop3_server.finish() return [result, i] end |
#check_smtp ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/mail_tester.rb', line 82 def check_smtp = 'Message-Id: <' + DateTime::now.to_s + '@' + @email + '>' msgstr = '' msgstr += "From: #{@realname} <#{@email}>\n" msgstr += "To: #{@realname} <#{@email}>\n" msgstr += "Subject: test message\n" msgstr += "Date: Sat, 23 Jun 2020 16:26:43 +0900\n" msgstr += "#{}\n" msgstr += "\n" msgstr += "This is a test message." @smtp_server. msgstr, @email, @email return ['Mail sent', ] end |
#delete_mail(search) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/mail_tester.rb', line 61 def delete_mail(search) result = 0 @pop3_server.start(@email, @password) if @pop3_server.mails.empty? result = 0 else pattern = Regexp.new(search.gsub(/[:+]/, '.')) @pop3_server.each_mail do |m| result += 1 if m.header() =~ pattern m.delete @pop3_server.finish() return 1 end end end @pop3_server.finish() return -1 end |
#search_mail(search) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/mail_tester.rb', line 41 def search_mail(search) result = 0 @pop3_server.start(@email, @password) if @pop3_server.mails.empty? result = 0 else pattern = Regexp.new(search.gsub(/[:+]/, '.')) @pop3_server.each_mail do |m| result += 1 if m.header() =~ pattern @pop3_server.finish() return result end end end @pop3_server.finish() return -1 end |