gmail 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +13 -0
  4. data/.rubocop_todo.yml +239 -0
  5. data/.travis.yml +19 -0
  6. data/CHANGELOG.md +75 -18
  7. data/Gemfile +1 -1
  8. data/README.md +214 -131
  9. data/Rakefile +11 -0
  10. data/gmail.gemspec +8 -8
  11. data/lib/gmail.rb +31 -18
  12. data/lib/gmail/client.rb +11 -7
  13. data/lib/gmail/client/base.rb +52 -48
  14. data/lib/gmail/client/plain.rb +9 -5
  15. data/lib/gmail/client/xoauth.rb +23 -6
  16. data/lib/gmail/client/xoauth2.rb +39 -0
  17. data/lib/gmail/imap_extensions.rb +150 -0
  18. data/lib/gmail/labels.rb +33 -16
  19. data/lib/gmail/mailbox.rb +60 -42
  20. data/lib/gmail/message.rb +142 -101
  21. data/lib/gmail/version.rb +2 -2
  22. data/spec/account.yml.obfus +2 -0
  23. data/spec/gmail/client/base_spec.rb +5 -0
  24. data/spec/gmail/client/plain_spec.rb +168 -0
  25. data/spec/gmail/client/xoauth2_spec.rb +186 -0
  26. data/spec/gmail/client/xoauth_spec.rb +5 -0
  27. data/spec/gmail/client_spec.rb +5 -0
  28. data/spec/gmail/imap_extensions_spec.rb +12 -0
  29. data/spec/gmail/labels_spec.rb +18 -0
  30. data/spec/{mailbox_spec.rb → gmail/mailbox_spec.rb} +14 -14
  31. data/spec/gmail/message_spec.rb +181 -0
  32. data/spec/gmail_spec.rb +21 -21
  33. data/spec/recordings/gmail/_new_connects_with_client_and_give_it_context_when_block_given.yml +28 -0
  34. data/spec/recordings/gmail/_new_connects_with_gmail_service_and_return_valid_connection_object.yml +28 -0
  35. data/spec/recordings/gmail/_new_does_not_raise_error_when_couldn_t_connect_with_given_account.yml +13 -0
  36. data/spec/recordings/gmail/_new_raises_error_when_couldn_t_connect_with_given_account.yml +13 -0
  37. data/spec/recordings/gmail_client_plain/instance/_connection_automatically_logs_in_to_gmail_account_when_it_s_called.yml +42 -0
  38. data/spec/recordings/gmail_client_plain/instance/delivers_inline_composed_email.yml +42 -0
  39. data/spec/recordings/gmail_client_plain/instance/does_not_log_in_when_given_gmail_account_is_invalid.yml +13 -0
  40. data/spec/recordings/gmail_client_plain/instance/does_not_raise_error_even_though_gmail_account_is_invalid.yml +13 -0
  41. data/spec/recordings/gmail_client_plain/instance/labels/checks_if_there_is_given_label_defined.yml +196 -0
  42. data/spec/recordings/gmail_client_plain/instance/labels/creates_given_label.yml +151 -0
  43. data/spec/recordings/gmail_client_plain/instance/labels/removes_existing_label.yml +146 -0
  44. data/spec/recordings/gmail_client_plain/instance/labels/returns_list_of_all_available_labels.yml +113 -0
  45. data/spec/recordings/gmail_client_plain/instance/properly_logs_in_to_valid_gmail_account.yml +42 -0
  46. data/spec/recordings/gmail_client_plain/instance/properly_logs_out_from_gmail.yml +42 -0
  47. data/spec/recordings/gmail_client_plain/instance/properly_switches_to_given_mailbox.yml +109 -0
  48. data/spec/recordings/gmail_client_plain/instance/properly_switches_to_given_mailbox_using_block_style.yml +109 -0
  49. data/spec/recordings/gmail_client_plain/instance/raises_error_when_given_gmail_account_is_invalid_and_errors_enabled.yml +13 -0
  50. data/spec/recordings/gmail_client_xo_auth2/instance/does_not_log_in_when_given_gmail_account_is_invalid.yml +13 -0
  51. data/spec/recordings/gmail_client_xo_auth2/instance/labels/checks_if_there_is_given_label_defined.yml +27 -0
  52. data/spec/recordings/gmail_client_xo_auth2/instance/labels/creates_given_label.yml +39 -0
  53. data/spec/recordings/gmail_client_xo_auth2/instance/labels/removes_existing_label.yml +39 -0
  54. data/spec/recordings/gmail_client_xo_auth2/instance/labels/returns_list_of_all_available_labels.yml +27 -0
  55. data/spec/recordings/gmail_client_xo_auth2/instance/properly_logs_in_to_valid_gmail_account.yml +15 -0
  56. data/spec/recordings/gmail_client_xo_auth2/instance/properly_logs_out_from_gmail.yml +15 -0
  57. data/spec/recordings/gmail_client_xo_auth2/instance/properly_switches_to_given_mailbox.yml +40 -0
  58. data/spec/recordings/gmail_client_xo_auth2/instance/properly_switches_to_given_mailbox_using_block_style.yml +40 -0
  59. data/spec/recordings/gmail_client_xo_auth2/instance/raises_error_when_given_gmail_account_is_invalid_and_errors_enabled.yml +13 -0
  60. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/all/localizes_into_the_appropriate_label.yml +116 -0
  61. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/drafts/localizes_into_the_appropriate_label.yml +116 -0
  62. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/flagged/localizes_into_the_appropriate_label.yml +116 -0
  63. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/important/localizes_into_the_appropriate_label.yml +116 -0
  64. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/inbox/localizes_into_the_appropriate_label.yml +42 -0
  65. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/junk/localizes_into_the_appropriate_label.yml +116 -0
  66. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/sent/localizes_into_the_appropriate_label.yml +116 -0
  67. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/trash/localizes_into_the_appropriate_label.yml +116 -0
  68. data/spec/recordings/gmail_mailbox/instance/counts_all_emails.yml +277 -0
  69. data/spec/recordings/gmail_mailbox/instance/finds_messages.yml +586 -0
  70. data/spec/recordings/gmail_mailbox/on_initialize/sets_client_and_name.yml +42 -0
  71. data/spec/recordings/gmail_mailbox/on_initialize/works_in_inbox_by_default.yml +42 -0
  72. data/spec/recordings/gmail_message/initialize/sets_prefetch_attrs.yml +578 -0
  73. data/spec/recordings/gmail_message/initialize/sets_uid_and_mailbox.yml +580 -0
  74. data/spec/recordings/gmail_message/instance_methods/deletes_itself.yml +637 -0
  75. data/spec/recordings/gmail_message/instance_methods/marks_itself_read.yml +682 -0
  76. data/spec/recordings/gmail_message/instance_methods/marks_itself_unread.yml +686 -0
  77. data/spec/recordings/gmail_message/instance_methods/moves_from_one_tag_to_other.yml +862 -0
  78. data/spec/recordings/gmail_message/instance_methods/removes_a_given_label.yml +776 -0
  79. data/spec/recordings/gmail_message/instance_methods/removes_a_given_label_with_old_method.yml +776 -0
  80. data/spec/recordings/gmail_message/instance_methods/sets_given_label.yml +690 -0
  81. data/spec/recordings/gmail_message/instance_methods/sets_given_label_with_old_method.yml +691 -0
  82. data/spec/spec_helper.rb +34 -10
  83. data/spec/support/imap_mock.rb +129 -0
  84. data/spec/support/obfuscation.rb +52 -0
  85. metadata +79 -30
  86. data/TODO.md +0 -12
  87. data/lib/gmail/client/imap_extensions.rb +0 -54
  88. data/spec/client_spec.rb +0 -178
  89. data/spec/message_spec.rb +0 -51
@@ -0,0 +1,181 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gmail::Message do
4
+ describe "initialize" do
5
+ let(:client) { mock_client }
6
+ let(:mailbox) { client.mailbox(:all) }
7
+
8
+ subject do
9
+ mailbox.emails.first
10
+ end
11
+
12
+ it "sets uid and mailbox" do
13
+ expect(subject.instance_variable_get(:@mailbox)).to be_a Gmail::Mailbox
14
+ expect(subject.instance_variable_get(:@gmail)).to be_a Gmail::Client::Base
15
+ expect(subject.instance_variable_get(:@uid)).to be_a Integer
16
+ subject.labels
17
+ end
18
+
19
+ it "sets PREFETCH_ATTRS" do
20
+ expect(subject.uid).to be_a Integer
21
+ expect(subject.msg_id).to be_a Integer
22
+ expect(subject.thr_id).to be_a Integer
23
+ expect(subject.envelope).to be_a Net::IMAP::Envelope
24
+ expect(subject.message).to be_a Mail::Message
25
+ expect(subject.flags).to be_a Array
26
+ expect(subject.labels).to be_a Array
27
+ end
28
+ end
29
+
30
+ describe "mocks" do
31
+ subject { Gmail::Message.new(double(:mailbox, :name => 'INBOX'), nil) }
32
+ before { allow_any_instance_of(Gmail::Message).to receive(:fetch).and_return('foo') }
33
+
34
+ describe "#mark" do
35
+ it "marks itself as read" do
36
+ expect(subject).to receive(:read!).with(no_args).once
37
+ subject.mark(:read)
38
+ end
39
+
40
+ it "marks itself as unread" do
41
+ expect(subject).to receive(:unread!).with(no_args).once
42
+ subject.mark(:unread)
43
+ end
44
+
45
+ it "marks itself as deleted" do
46
+ expect(subject).to receive(:delete!).with(no_args).once
47
+ subject.mark(:deleted)
48
+ end
49
+
50
+ it "marks itself as spam" do
51
+ expect(subject).to receive(:spam!).with(no_args).once
52
+ subject.mark(:spam)
53
+ end
54
+
55
+ it "marks itself with a flag" do
56
+ expect(subject).to receive(:flag).with(:my_flag).once
57
+ subject.mark(:my_flag)
58
+ end
59
+ end
60
+
61
+ describe "#read!" do
62
+ it "flags itself as :Seen" do
63
+ expect(subject).to receive(:flag).with(:Seen).once
64
+ subject.read!
65
+ end
66
+ end
67
+
68
+ describe "#unread!" do
69
+ it "unflags :Seen from itself" do
70
+ expect(subject).to receive(:unflag).with(:Seen).once
71
+ subject.unread!
72
+ end
73
+ end
74
+
75
+ describe "#star!" do
76
+ it "flags itself as '[Gmail]/Starred'" do
77
+ expect(subject).to receive(:flag).with(:Flagged).once
78
+ subject.star!
79
+ end
80
+ end
81
+
82
+ describe "#unstar!" do
83
+ it "unflags '[Gmail]/Starred' from itself" do
84
+ expect(subject).to receive(:unflag).with(:Flagged).once
85
+ subject.unstar!
86
+ end
87
+ end
88
+
89
+ describe "#spam!" do
90
+ it "moves itself to the spam folder" do
91
+ expect(subject).to receive(:add_label).with("\\Spam").once
92
+ subject.spam!
93
+ end
94
+ end
95
+
96
+ describe "#archive!" do
97
+ it "removes itself from the inbox" do
98
+ expect(subject).to receive(:remove_label).with("\\Inbox").once
99
+ subject.archive!
100
+ end
101
+ end
102
+ end
103
+
104
+ describe "instance methods" do
105
+ let(:client) { mock_client }
106
+ let(:message) { client.mailbox(:all).emails(:unread, :from => TEST_ACCOUNT[0].to_s, :subject => "Hello world!").last }
107
+
108
+ after { client.logout if client.logged_in? }
109
+
110
+ it "sets given label" do
111
+ message.add_label 'Awesome'
112
+ message.add_label 'Great'
113
+
114
+ expect(message.labels).to include("Awesome")
115
+ expect(message.labels).to include("Great")
116
+ expect(message.labels).to include("\\Inbox")
117
+ end
118
+
119
+ it "removes a given label" do
120
+ message.add_label 'Awesome'
121
+ message.add_label 'Great'
122
+
123
+ message.remove_label 'Awesome'
124
+ expect(message.labels).not_to include("Awesome")
125
+ expect(message.labels).to include("Great")
126
+ expect(message.labels).to include("\\Inbox")
127
+ expect(message.flags).not_to include(:Seen)
128
+ end
129
+
130
+ it "sets given label with old method" do
131
+ message.label! 'Awesome'
132
+ message.label! 'Great'
133
+ expect(message.labels).to include("Great")
134
+ expect(message.labels).to include("Awesome")
135
+ expect(message.labels).to include("\\Inbox")
136
+ end
137
+
138
+ it "removes a given label with old method" do
139
+ message.add_label 'Awesome'
140
+ message.add_label 'Great'
141
+
142
+ message.remove_label! 'Awesome'
143
+ expect(message.labels).not_to include("Awesome")
144
+ expect(message.labels).to include("Great")
145
+ expect(message.labels).to include("\\Inbox")
146
+ expect(message.flags).not_to include(:Seen)
147
+ end
148
+
149
+ it "moves from one tag to other" do
150
+ message.add_label 'Awesome'
151
+ message.remove_label 'Great'
152
+
153
+ message.move_to('Great', 'Awesome')
154
+ expect(message.labels).to include("Great")
155
+ expect(message.labels).not_to include("Awesome")
156
+ expect(message.labels).to include("\\Inbox")
157
+ end
158
+
159
+ it "marks itself read" do
160
+ message.mark(:unread)
161
+
162
+ message.mark(:read)
163
+ expect(message.flags).to include(:Seen)
164
+ end
165
+
166
+ it "marks itself unread" do
167
+ message.mark(:read)
168
+
169
+ message.mark(:unread)
170
+ expect(message.flags).not_to include(:Seen)
171
+ end
172
+
173
+ it "deletes itself" do
174
+ trash_count = client.mailbox(:trash).emails.count
175
+
176
+ message.delete!
177
+
178
+ expect(client.mailbox(:trash).emails.count).to eq(trash_count + 1)
179
+ end
180
+ end
181
+ end
@@ -1,39 +1,39 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Any object" do
3
+ describe Gmail do
4
4
  it "should be able to convert itself to IMAP date format" do
5
- "20-12-1988".to_imap_date.should == "20-December-1988"
5
+ expect("20-12-1988".to_imap_date).to eq("20-December-1988")
6
6
  end
7
-
7
+
8
8
  %w[new new!].each do |method|
9
- it "##{method} should properly connect with GMail service and return valid connection object" do
9
+ it "##{method} connects with Gmail service and return valid connection object" do
10
10
  gmail = Gmail.send(method, *TEST_ACCOUNT)
11
- gmail.should be_kind_of(Gmail::Client::Plain)
12
- gmail.connection.should_not be_nil
13
- gmail.should be_logged_in
11
+ expect(gmail).to be_kind_of(Gmail::Client::Plain)
12
+ expect(gmail.connection).not_to be_nil
13
+ expect(gmail).to be_logged_in
14
14
  end
15
-
16
- it "##{method} should connect with client and give it context when block given" do
15
+
16
+ it "##{method} connects with client and give it context when block given" do
17
17
  Gmail.send(method, *TEST_ACCOUNT) do |gmail|
18
- gmail.should be_kind_of(Gmail::Client::Plain)
19
- gmail.connection.should_not be_nil
20
- gmail.should be_logged_in
18
+ expect(gmail).to be_kind_of(Gmail::Client::Plain)
19
+ expect(gmail.connection).not_to be_nil
20
+ expect(gmail).to be_logged_in
21
21
  end
22
22
  end
23
23
  end
24
-
25
- it "#new should not raise error when couldn't connect with given account" do
26
- lambda {
24
+
25
+ it "#new does not raise error when couldn't connect with given account" do
26
+ expect {
27
27
  gmail = Gmail.new("foo", "bar")
28
- gmail.should_not be_logged_in
29
- }.should_not raise_error
28
+ expect(gmail).not_to be_logged_in
29
+ }.not_to raise_error
30
30
  end
31
31
 
32
- it "#new! should raise error when couldn't connect with given account" do
33
- lambda {
32
+ it "#new! raises error when couldn't connect with given account" do
33
+ expect {
34
34
  gmail = Gmail.new!("foo", "bar")
35
- gmail.should_not be_logged_in
36
- }.should raise_error
35
+ expect(gmail).not_to be_logged_in
36
+ }.to raise_error
37
37
  ### FIX: can someone dig to the bottom of this? We are getting NoMethodError instead of Gmail::Client::AuthorizationError in 1.9
38
38
  end
39
39
  end
@@ -0,0 +1,28 @@
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: !ruby/struct:Net::IMAP::ResponseText
8
+ code:
9
+ text: ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated (Success)
10
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
11
+ (Success)\r\n"
12
+ - CAPABILITY:
13
+ - - IMAP4REV1
14
+ - UNSELECT
15
+ - IDLE
16
+ - NAMESPACE
17
+ - QUOTA
18
+ - ID
19
+ - XLIST
20
+ - CHILDREN
21
+ - X-GM-EXT-1
22
+ - UIDPLUS
23
+ - COMPRESS=DEFLATE
24
+ - ENABLE
25
+ - MOVE
26
+ - CONDSTORE
27
+ - ESEARCH
28
+ - UTF8=ACCEPT
@@ -0,0 +1,28 @@
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: !ruby/struct:Net::IMAP::ResponseText
8
+ code:
9
+ text: ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated (Success)
10
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
11
+ (Success)\r\n"
12
+ - CAPABILITY:
13
+ - - IMAP4REV1
14
+ - UNSELECT
15
+ - IDLE
16
+ - NAMESPACE
17
+ - QUOTA
18
+ - ID
19
+ - XLIST
20
+ - CHILDREN
21
+ - X-GM-EXT-1
22
+ - UIDPLUS
23
+ - COMPRESS=DEFLATE
24
+ - ENABLE
25
+ - MOVE
26
+ - CONDSTORE
27
+ - ESEARCH
28
+ - UTF8=ACCEPT
@@ -0,0 +1,13 @@
1
+ ---
2
+ LOGIN-f0cde728d1c78eb72490f79825821b1c:
3
+ - - :raise
4
+ - !ruby/exception:Net::IMAP::NoResponseError
5
+ message: Invalid credentials e5mb14145422oah
6
+ response: !ruby/struct:Net::IMAP::TaggedResponse
7
+ tag: RUBY0001
8
+ name: 'NO'
9
+ data: !ruby/struct:Net::IMAP::ResponseText
10
+ code:
11
+ text: Invalid credentials e5mb14145422oah
12
+ raw_data: "RUBY0001 NO Invalid credentials e5mb14145422oah\r\n"
13
+ - {}
@@ -0,0 +1,13 @@
1
+ ---
2
+ LOGIN-f0cde728d1c78eb72490f79825821b1c:
3
+ - - :raise
4
+ - !ruby/exception:Net::IMAP::NoResponseError
5
+ message: Invalid credentials ld5mb12086173obb
6
+ response: !ruby/struct:Net::IMAP::TaggedResponse
7
+ tag: RUBY0001
8
+ name: 'NO'
9
+ data: !ruby/struct:Net::IMAP::ResponseText
10
+ code:
11
+ text: Invalid credentials ld5mb12086173obb
12
+ raw_data: "RUBY0001 NO Invalid credentials ld5mb12086173obb\r\n"
13
+ - {}
@@ -0,0 +1,42 @@
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: !ruby/struct:Net::IMAP::ResponseText
8
+ code:
9
+ text: ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated (Success)
10
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
11
+ (Success)\r\n"
12
+ - CAPABILITY: &1
13
+ - - IMAP4REV1
14
+ - UNSELECT
15
+ - IDLE
16
+ - NAMESPACE
17
+ - QUOTA
18
+ - ID
19
+ - XLIST
20
+ - CHILDREN
21
+ - X-GM-EXT-1
22
+ - UIDPLUS
23
+ - COMPRESS=DEFLATE
24
+ - ENABLE
25
+ - MOVE
26
+ - CONDSTORE
27
+ - ESEARCH
28
+ - UTF8=ACCEPT
29
+ LOGOUT-e76a09b7766d60a37ff9e1af527a143e:
30
+ - - :return
31
+ - !ruby/struct:Net::IMAP::TaggedResponse
32
+ tag: RUBY0002
33
+ name: OK
34
+ data: !ruby/struct:Net::IMAP::ResponseText
35
+ code:
36
+ text: 73 good day (Success)
37
+ raw_data: "RUBY0002 OK 73 good day (Success)\r\n"
38
+ - CAPABILITY: *1
39
+ BYE:
40
+ - !ruby/struct:Net::IMAP::ResponseText
41
+ code:
42
+ text: LOGOUT Requested
@@ -0,0 +1,42 @@
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: !ruby/struct:Net::IMAP::ResponseText
8
+ code:
9
+ text: ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated (Success)
10
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
11
+ (Success)\r\n"
12
+ - CAPABILITY: &1
13
+ - - IMAP4REV1
14
+ - UNSELECT
15
+ - IDLE
16
+ - NAMESPACE
17
+ - QUOTA
18
+ - ID
19
+ - XLIST
20
+ - CHILDREN
21
+ - X-GM-EXT-1
22
+ - UIDPLUS
23
+ - COMPRESS=DEFLATE
24
+ - ENABLE
25
+ - MOVE
26
+ - CONDSTORE
27
+ - ESEARCH
28
+ - UTF8=ACCEPT
29
+ LOGOUT-e76a09b7766d60a37ff9e1af527a143e:
30
+ - - :return
31
+ - !ruby/struct:Net::IMAP::TaggedResponse
32
+ tag: RUBY0002
33
+ name: OK
34
+ data: !ruby/struct:Net::IMAP::ResponseText
35
+ code:
36
+ text: 73 good day (Success)
37
+ raw_data: "RUBY0002 OK 73 good day (Success)\r\n"
38
+ - CAPABILITY: *1
39
+ BYE:
40
+ - !ruby/struct:Net::IMAP::ResponseText
41
+ code:
42
+ text: LOGOUT Requested
@@ -0,0 +1,13 @@
1
+ ---
2
+ LOGIN-f0cde728d1c78eb72490f79825821b1c:
3
+ - - :raise
4
+ - !ruby/exception:Net::IMAP::NoResponseError
5
+ message: Invalid credentials vz12mb11973448obc
6
+ response: !ruby/struct:Net::IMAP::TaggedResponse
7
+ tag: RUBY0001
8
+ name: 'NO'
9
+ data: !ruby/struct:Net::IMAP::ResponseText
10
+ code:
11
+ text: Invalid credentials vz12mb11973448obc
12
+ raw_data: "RUBY0001 NO Invalid credentials vz12mb11973448obc\r\n"
13
+ - {}
@@ -0,0 +1,13 @@
1
+ ---
2
+ LOGIN-f0cde728d1c78eb72490f79825821b1c:
3
+ - - :raise
4
+ - !ruby/exception:Net::IMAP::NoResponseError
5
+ message: Invalid credentials xx2mb12249277obc
6
+ response: !ruby/struct:Net::IMAP::TaggedResponse
7
+ tag: RUBY0001
8
+ name: 'NO'
9
+ data: !ruby/struct:Net::IMAP::ResponseText
10
+ code:
11
+ text: Invalid credentials xx2mb12249277obc
12
+ raw_data: "RUBY0001 NO Invalid credentials xx2mb12249277obc\r\n"
13
+ - {}
@@ -0,0 +1,196 @@
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: !ruby/struct:Net::IMAP::ResponseText
8
+ code:
9
+ text: ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated (Success)
10
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
11
+ (Success)\r\n"
12
+ - CAPABILITY: &1
13
+ - - IMAP4REV1
14
+ - UNSELECT
15
+ - IDLE
16
+ - NAMESPACE
17
+ - QUOTA
18
+ - ID
19
+ - XLIST
20
+ - CHILDREN
21
+ - X-GM-EXT-1
22
+ - UIDPLUS
23
+ - COMPRESS=DEFLATE
24
+ - ENABLE
25
+ - MOVE
26
+ - CONDSTORE
27
+ - ESEARCH
28
+ - UTF8=ACCEPT
29
+ LIST-e0583fa6130ee374cef031c01d8cc486:
30
+ - - :return
31
+ - !ruby/struct:Net::IMAP::TaggedResponse
32
+ tag: RUBY0002
33
+ name: OK
34
+ data: !ruby/struct:Net::IMAP::ResponseText
35
+ code:
36
+ text: Success
37
+ raw_data: "RUBY0002 OK Success\r\n"
38
+ - CAPABILITY: *1
39
+ LIST:
40
+ - !ruby/struct:Net::IMAP::MailboxList
41
+ attr:
42
+ - :Hasnochildren
43
+ delim: "/"
44
+ name: Awesome
45
+ - !ruby/struct:Net::IMAP::MailboxList
46
+ attr:
47
+ - :Hasnochildren
48
+ delim: "/"
49
+ name: Great
50
+ - !ruby/struct:Net::IMAP::MailboxList
51
+ attr:
52
+ - :Hasnochildren
53
+ delim: "/"
54
+ name: INBOX
55
+ - !ruby/struct:Net::IMAP::MailboxList
56
+ attr:
57
+ - :Noselect
58
+ - :Haschildren
59
+ delim: "/"
60
+ name: "[Gmail]"
61
+ - - :return
62
+ - !ruby/struct:Net::IMAP::TaggedResponse
63
+ tag: RUBY0004
64
+ name: OK
65
+ data: !ruby/struct:Net::IMAP::ResponseText
66
+ code:
67
+ text: Success
68
+ raw_data: "RUBY0004 OK Success\r\n"
69
+ - CAPABILITY: *1
70
+ LIST:
71
+ - !ruby/struct:Net::IMAP::MailboxList
72
+ attr:
73
+ - :Hasnochildren
74
+ delim: "/"
75
+ name: Awesome
76
+ - !ruby/struct:Net::IMAP::MailboxList
77
+ attr:
78
+ - :Hasnochildren
79
+ delim: "/"
80
+ name: Great
81
+ - !ruby/struct:Net::IMAP::MailboxList
82
+ attr:
83
+ - :Hasnochildren
84
+ delim: "/"
85
+ name: INBOX
86
+ - !ruby/struct:Net::IMAP::MailboxList
87
+ attr:
88
+ - :Noselect
89
+ - :Haschildren
90
+ delim: "/"
91
+ name: "[Gmail]"
92
+ LIST-94cc1ce946087e61b81baed886d31dbc:
93
+ - - :return
94
+ - !ruby/struct:Net::IMAP::TaggedResponse
95
+ tag: RUBY0003
96
+ name: OK
97
+ data: !ruby/struct:Net::IMAP::ResponseText
98
+ code:
99
+ text: Success
100
+ raw_data: "RUBY0003 OK Success\r\n"
101
+ - CAPABILITY: *1
102
+ LIST:
103
+ - !ruby/struct:Net::IMAP::MailboxList
104
+ attr:
105
+ - :Hasnochildren
106
+ - :All
107
+ delim: "/"
108
+ name: "[Gmail]/All Mail"
109
+ - !ruby/struct:Net::IMAP::MailboxList
110
+ attr:
111
+ - :Hasnochildren
112
+ - :Drafts
113
+ delim: "/"
114
+ name: "[Gmail]/Drafts"
115
+ - !ruby/struct:Net::IMAP::MailboxList
116
+ attr:
117
+ - :Hasnochildren
118
+ - :Important
119
+ delim: "/"
120
+ name: "[Gmail]/Important"
121
+ - !ruby/struct:Net::IMAP::MailboxList
122
+ attr:
123
+ - :Sent
124
+ - :Hasnochildren
125
+ delim: "/"
126
+ name: "[Gmail]/Sent Mail"
127
+ - !ruby/struct:Net::IMAP::MailboxList
128
+ attr:
129
+ - :Hasnochildren
130
+ - :Junk
131
+ delim: "/"
132
+ name: "[Gmail]/Spam"
133
+ - !ruby/struct:Net::IMAP::MailboxList
134
+ attr:
135
+ - :Hasnochildren
136
+ - :Flagged
137
+ delim: "/"
138
+ name: "[Gmail]/Starred"
139
+ - !ruby/struct:Net::IMAP::MailboxList
140
+ attr:
141
+ - :Trash
142
+ - :Hasnochildren
143
+ delim: "/"
144
+ name: "[Gmail]/Trash"
145
+ - - :return
146
+ - !ruby/struct:Net::IMAP::TaggedResponse
147
+ tag: RUBY0005
148
+ name: OK
149
+ data: !ruby/struct:Net::IMAP::ResponseText
150
+ code:
151
+ text: Success
152
+ raw_data: "RUBY0005 OK Success\r\n"
153
+ - CAPABILITY: *1
154
+ LIST:
155
+ - !ruby/struct:Net::IMAP::MailboxList
156
+ attr:
157
+ - :Hasnochildren
158
+ - :All
159
+ delim: "/"
160
+ name: "[Gmail]/All Mail"
161
+ - !ruby/struct:Net::IMAP::MailboxList
162
+ attr:
163
+ - :Hasnochildren
164
+ - :Drafts
165
+ delim: "/"
166
+ name: "[Gmail]/Drafts"
167
+ - !ruby/struct:Net::IMAP::MailboxList
168
+ attr:
169
+ - :Hasnochildren
170
+ - :Important
171
+ delim: "/"
172
+ name: "[Gmail]/Important"
173
+ - !ruby/struct:Net::IMAP::MailboxList
174
+ attr:
175
+ - :Sent
176
+ - :Hasnochildren
177
+ delim: "/"
178
+ name: "[Gmail]/Sent Mail"
179
+ - !ruby/struct:Net::IMAP::MailboxList
180
+ attr:
181
+ - :Hasnochildren
182
+ - :Junk
183
+ delim: "/"
184
+ name: "[Gmail]/Spam"
185
+ - !ruby/struct:Net::IMAP::MailboxList
186
+ attr:
187
+ - :Hasnochildren
188
+ - :Flagged
189
+ delim: "/"
190
+ name: "[Gmail]/Starred"
191
+ - !ruby/struct:Net::IMAP::MailboxList
192
+ attr:
193
+ - :Trash
194
+ - :Hasnochildren
195
+ delim: "/"
196
+ name: "[Gmail]/Trash"