gmail 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +27 -27
  3. data/.rspec +1 -1
  4. data/.rubocop.yml +13 -13
  5. data/.rubocop_todo.yml +239 -239
  6. data/.travis.yml +19 -19
  7. data/CHANGELOG.md +145 -139
  8. data/Gemfile +3 -3
  9. data/LICENSE +21 -21
  10. data/README.md +355 -354
  11. data/Rakefile +46 -46
  12. data/gmail.gemspec +34 -34
  13. data/lib/gmail.rb +78 -78
  14. data/lib/gmail/client.rb +34 -34
  15. data/lib/gmail/client/base.rb +229 -229
  16. data/lib/gmail/client/plain.rb +24 -24
  17. data/lib/gmail/client/xoauth.rb +68 -68
  18. data/lib/gmail/client/xoauth2.rb +39 -39
  19. data/lib/gmail/imap_extensions.rb +159 -150
  20. data/lib/gmail/labels.rb +79 -79
  21. data/lib/gmail/mailbox.rb +175 -135
  22. data/lib/gmail/message.rb +207 -207
  23. data/lib/gmail/version.rb +3 -3
  24. data/spec/account.yml.example +1 -1
  25. data/spec/account.yml.obfus +2 -2
  26. data/spec/gmail/client/base_spec.rb +5 -5
  27. data/spec/gmail/client/plain_spec.rb +169 -168
  28. data/spec/gmail/client/xoauth2_spec.rb +186 -186
  29. data/spec/gmail/client/xoauth_spec.rb +5 -5
  30. data/spec/gmail/client_spec.rb +5 -5
  31. data/spec/gmail/imap_extensions_spec.rb +47 -12
  32. data/spec/gmail/labels_spec.rb +27 -18
  33. data/spec/gmail/mailbox_spec.rb +84 -47
  34. data/spec/gmail/message_spec.rb +181 -181
  35. data/spec/gmail_spec.rb +39 -39
  36. data/spec/recordings/gmail/_new_connects_with_client_and_give_it_context_when_block_given.yml +28 -28
  37. data/spec/recordings/gmail/_new_connects_with_gmail_service_and_return_valid_connection_object.yml +28 -28
  38. data/spec/recordings/gmail/_new_does_not_raise_error_when_couldn_t_connect_with_given_account.yml +13 -13
  39. data/spec/recordings/gmail/_new_raises_error_when_couldn_t_connect_with_given_account.yml +13 -13
  40. data/spec/recordings/gmail_client_plain/instance/_connection_automatically_logs_in_to_gmail_account_when_it_s_called.yml +42 -42
  41. data/spec/recordings/gmail_client_plain/instance/delivers_inline_composed_email.yml +42 -42
  42. data/spec/recordings/gmail_client_plain/instance/does_not_log_in_when_given_gmail_account_is_invalid.yml +13 -13
  43. data/spec/recordings/gmail_client_plain/instance/does_not_raise_error_even_though_gmail_account_is_invalid.yml +13 -13
  44. data/spec/recordings/gmail_client_plain/instance/labels/checks_if_there_is_given_label_defined.yml +196 -196
  45. data/spec/recordings/gmail_client_plain/instance/labels/creates_given_label.yml +151 -151
  46. data/spec/recordings/gmail_client_plain/instance/labels/removes_existing_label.yml +146 -146
  47. data/spec/recordings/gmail_client_plain/instance/labels/returns_list_of_all_available_labels.yml +113 -113
  48. data/spec/recordings/gmail_client_plain/instance/properly_logs_in_to_valid_gmail_account.yml +42 -42
  49. data/spec/recordings/gmail_client_plain/instance/properly_logs_out_from_gmail.yml +42 -42
  50. data/spec/recordings/gmail_client_plain/instance/properly_switches_to_given_mailbox.yml +109 -109
  51. data/spec/recordings/gmail_client_plain/instance/properly_switches_to_given_mailbox_using_block_style.yml +109 -109
  52. data/spec/recordings/gmail_client_plain/instance/raises_error_when_given_gmail_account_is_invalid_and_errors_enabled.yml +13 -13
  53. data/spec/recordings/gmail_client_xo_auth2/instance/does_not_log_in_when_given_gmail_account_is_invalid.yml +13 -13
  54. data/spec/recordings/gmail_client_xo_auth2/instance/labels/checks_if_there_is_given_label_defined.yml +27 -27
  55. data/spec/recordings/gmail_client_xo_auth2/instance/labels/creates_given_label.yml +39 -39
  56. data/spec/recordings/gmail_client_xo_auth2/instance/labels/removes_existing_label.yml +39 -39
  57. data/spec/recordings/gmail_client_xo_auth2/instance/labels/returns_list_of_all_available_labels.yml +27 -27
  58. data/spec/recordings/gmail_client_xo_auth2/instance/properly_logs_in_to_valid_gmail_account.yml +15 -15
  59. data/spec/recordings/gmail_client_xo_auth2/instance/properly_logs_out_from_gmail.yml +15 -15
  60. data/spec/recordings/gmail_client_xo_auth2/instance/properly_switches_to_given_mailbox.yml +40 -40
  61. data/spec/recordings/gmail_client_xo_auth2/instance/properly_switches_to_given_mailbox_using_block_style.yml +40 -40
  62. data/spec/recordings/gmail_client_xo_auth2/instance/raises_error_when_given_gmail_account_is_invalid_and_errors_enabled.yml +13 -13
  63. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/all/localizes_into_the_appropriate_label.yml +116 -116
  64. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/and_the_mailbox_does_not_exist/returns_the_mailbox_name_as_a_string.yml +110 -0
  65. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/drafts/localizes_into_the_appropriate_label.yml +116 -116
  66. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/flagged/localizes_into_the_appropriate_label.yml +116 -116
  67. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/important/localizes_into_the_appropriate_label.yml +116 -116
  68. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/inbox/localizes_into_the_appropriate_label.yml +42 -42
  69. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/junk/localizes_into_the_appropriate_label.yml +116 -116
  70. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/sent/localizes_into_the_appropriate_label.yml +116 -116
  71. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/trash/localizes_into_the_appropriate_label.yml +116 -116
  72. data/spec/recordings/gmail_mailbox/instance/counts_all_emails.yml +277 -277
  73. data/spec/recordings/gmail_mailbox/instance/finds_messages.yml +586 -586
  74. data/spec/recordings/gmail_mailbox/instance/waits_once.yml +136 -0
  75. data/spec/recordings/gmail_mailbox/instance/waits_repeatedly.yml +141 -0
  76. data/spec/recordings/gmail_mailbox/instance/waits_with_29-minute_re-issue.yml +136 -0
  77. data/spec/recordings/gmail_mailbox/instance/waits_with_an_unblocked_connection.yml +207 -0
  78. data/spec/recordings/gmail_mailbox/on_initialize/sets_client_and_name.yml +42 -42
  79. data/spec/recordings/gmail_mailbox/on_initialize/works_in_inbox_by_default.yml +42 -42
  80. data/spec/recordings/gmail_message/initialize/sets_prefetch_attrs.yml +578 -578
  81. data/spec/recordings/gmail_message/initialize/sets_uid_and_mailbox.yml +580 -580
  82. data/spec/recordings/gmail_message/instance_methods/deletes_itself.yml +637 -637
  83. data/spec/recordings/gmail_message/instance_methods/marks_itself_read.yml +682 -682
  84. data/spec/recordings/gmail_message/instance_methods/marks_itself_unread.yml +686 -686
  85. data/spec/recordings/gmail_message/instance_methods/moves_from_one_tag_to_other.yml +862 -862
  86. data/spec/recordings/gmail_message/instance_methods/removes_a_given_label.yml +776 -776
  87. data/spec/recordings/gmail_message/instance_methods/removes_a_given_label_with_old_method.yml +776 -776
  88. data/spec/recordings/gmail_message/instance_methods/sets_given_label.yml +690 -690
  89. data/spec/recordings/gmail_message/instance_methods/sets_given_label_with_old_method.yml +691 -691
  90. data/spec/spec_helper.rb +53 -53
  91. data/spec/support/imap_mock.rb +181 -129
  92. data/spec/support/obfuscation.rb +52 -52
  93. metadata +78 -5
@@ -1,42 +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
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
@@ -1,42 +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
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
@@ -1,578 +1,578 @@
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-b30698c3407aff5520448484b159fc07:
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
- - :Hasnochildren
58
- delim: "/"
59
- name: Ni&APE-os
60
- - !ruby/struct:Net::IMAP::MailboxList
61
- attr:
62
- - :Noselect
63
- - :Haschildren
64
- delim: "/"
65
- name: "[Gmail]"
66
- - !ruby/struct:Net::IMAP::MailboxList
67
- attr:
68
- - :Hasnochildren
69
- - :All
70
- delim: "/"
71
- name: "[Gmail]/All Mail"
72
- - !ruby/struct:Net::IMAP::MailboxList
73
- attr:
74
- - :Hasnochildren
75
- - :Drafts
76
- delim: "/"
77
- name: "[Gmail]/Drafts"
78
- - !ruby/struct:Net::IMAP::MailboxList
79
- attr:
80
- - :Hasnochildren
81
- - :Important
82
- delim: "/"
83
- name: "[Gmail]/Important"
84
- - !ruby/struct:Net::IMAP::MailboxList
85
- attr:
86
- - :Sent
87
- - :Hasnochildren
88
- delim: "/"
89
- name: "[Gmail]/Sent Mail"
90
- - !ruby/struct:Net::IMAP::MailboxList
91
- attr:
92
- - :Hasnochildren
93
- - :Junk
94
- delim: "/"
95
- name: "[Gmail]/Spam"
96
- - !ruby/struct:Net::IMAP::MailboxList
97
- attr:
98
- - :Hasnochildren
99
- - :Flagged
100
- delim: "/"
101
- name: "[Gmail]/Starred"
102
- - !ruby/struct:Net::IMAP::MailboxList
103
- attr:
104
- - :Trash
105
- - :Hasnochildren
106
- delim: "/"
107
- name: "[Gmail]/Trash"
108
- - !ruby/struct:Net::IMAP::MailboxList
109
- attr:
110
- - :Hasnochildren
111
- delim: "/"
112
- name: one's and two's
113
- - !ruby/struct:Net::IMAP::MailboxList
114
- attr:
115
- - :Hasnochildren
116
- delim: "/"
117
- name: some new label
118
- - !ruby/struct:Net::IMAP::MailboxList
119
- attr:
120
- - :Hasnochildren
121
- delim: "/"
122
- name: some other label
123
- SELECT-868fce8856c91e50bebd43b4dbd8e071:
124
- - - :return
125
- - !ruby/struct:Net::IMAP::TaggedResponse
126
- tag: RUBY0003
127
- name: OK
128
- data: !ruby/struct:Net::IMAP::ResponseText
129
- code: !ruby/struct:Net::IMAP::ResponseCode
130
- name: READ-WRITE
131
- data:
132
- text: " [Gmail]/All Mail selected. (Success)"
133
- raw_data: "RUBY0003 OK [READ-WRITE] [Gmail]/All Mail selected. (Success)\r\n"
134
- - FLAGS: &4
135
- - - :Answered
136
- - :Flagged
137
- - :Draft
138
- - :Deleted
139
- - :Seen
140
- - "$Phishing"
141
- - "$NotPhishing"
142
- OK: &5
143
- - !ruby/struct:Net::IMAP::ResponseText
144
- code: !ruby/struct:Net::IMAP::ResponseCode
145
- name: PERMANENTFLAGS
146
- data: &2
147
- - :Answered
148
- - :Flagged
149
- - :Draft
150
- - :Deleted
151
- - :Seen
152
- - "$Phishing"
153
- - "$NotPhishing"
154
- - :*
155
- text: " Flags permitted."
156
- - !ruby/struct:Net::IMAP::ResponseText
157
- code: !ruby/struct:Net::IMAP::ResponseCode
158
- name: UIDVALIDITY
159
- data: 11
160
- text: " UIDs valid."
161
- - !ruby/struct:Net::IMAP::ResponseText
162
- code: !ruby/struct:Net::IMAP::ResponseCode
163
- name: UIDNEXT
164
- data: 187
165
- text: " Predicted next UID."
166
- - !ruby/struct:Net::IMAP::ResponseText
167
- code: !ruby/struct:Net::IMAP::ResponseCode
168
- name: HIGHESTMODSEQ
169
- data: '14589'
170
- text: ''
171
- PERMANENTFLAGS: &6
172
- - *2
173
- UIDVALIDITY: &7
174
- - 11
175
- EXISTS: &8
176
- - 179
177
- RECENT: &9
178
- - 0
179
- UIDNEXT: &10
180
- - 187
181
- HIGHESTMODSEQ: &11
182
- - '14589'
183
- - - :return
184
- - !ruby/struct:Net::IMAP::TaggedResponse
185
- tag: RUBY0005
186
- name: OK
187
- data: !ruby/struct:Net::IMAP::ResponseText
188
- code: !ruby/struct:Net::IMAP::ResponseCode
189
- name: READ-WRITE
190
- data:
191
- text: " [Gmail]/All Mail selected. (Success)"
192
- raw_data: "RUBY0005 OK [READ-WRITE] [Gmail]/All Mail selected. (Success)\r\n"
193
- - FLAGS: &12
194
- - - :Answered
195
- - :Flagged
196
- - :Draft
197
- - :Deleted
198
- - :Seen
199
- - "$Phishing"
200
- - "$NotPhishing"
201
- OK: &13
202
- - !ruby/struct:Net::IMAP::ResponseText
203
- code: !ruby/struct:Net::IMAP::ResponseCode
204
- name: PERMANENTFLAGS
205
- data: &3
206
- - :Answered
207
- - :Flagged
208
- - :Draft
209
- - :Deleted
210
- - :Seen
211
- - "$Phishing"
212
- - "$NotPhishing"
213
- - :*
214
- text: " Flags permitted."
215
- - !ruby/struct:Net::IMAP::ResponseText
216
- code: !ruby/struct:Net::IMAP::ResponseCode
217
- name: UIDVALIDITY
218
- data: 11
219
- text: " UIDs valid."
220
- - !ruby/struct:Net::IMAP::ResponseText
221
- code: !ruby/struct:Net::IMAP::ResponseCode
222
- name: UIDNEXT
223
- data: 187
224
- text: " Predicted next UID."
225
- - !ruby/struct:Net::IMAP::ResponseText
226
- code: !ruby/struct:Net::IMAP::ResponseCode
227
- name: HIGHESTMODSEQ
228
- data: '14589'
229
- text: ''
230
- PERMANENTFLAGS: &14
231
- - *3
232
- UIDVALIDITY: &15
233
- - 11
234
- EXISTS: &16
235
- - 179
236
- RECENT: &17
237
- - 0
238
- UIDNEXT: &18
239
- - 187
240
- HIGHESTMODSEQ: &19
241
- - '14589'
242
- UID SEARCH-b19658413e2b63d2bac9c290a67c2cb3:
243
- - - :return
244
- - !ruby/struct:Net::IMAP::TaggedResponse
245
- tag: RUBY0004
246
- name: OK
247
- data: !ruby/struct:Net::IMAP::ResponseText
248
- code:
249
- text: SEARCH completed (Success)
250
- raw_data: "RUBY0004 OK SEARCH completed (Success)\r\n"
251
- - FLAGS: *4
252
- OK: *5
253
- PERMANENTFLAGS: *6
254
- UIDVALIDITY: *7
255
- EXISTS: *8
256
- RECENT: *9
257
- UIDNEXT: *10
258
- HIGHESTMODSEQ: *11
259
- SEARCH:
260
- - - 1
261
- - 2
262
- - 3
263
- - 4
264
- - 5
265
- - 6
266
- - 7
267
- - 8
268
- - 9
269
- - 10
270
- - 11
271
- - 12
272
- - 13
273
- - 14
274
- - 15
275
- - 16
276
- - 17
277
- - 18
278
- - 19
279
- - 20
280
- - 21
281
- - 22
282
- - 23
283
- - 24
284
- - 25
285
- - 26
286
- - 27
287
- - 28
288
- - 29
289
- - 30
290
- - 31
291
- - 32
292
- - 33
293
- - 34
294
- - 35
295
- - 36
296
- - 37
297
- - 38
298
- - 39
299
- - 40
300
- - 41
301
- - 42
302
- - 43
303
- - 44
304
- - 45
305
- - 46
306
- - 47
307
- - 48
308
- - 49
309
- - 50
310
- - 51
311
- - 52
312
- - 53
313
- - 54
314
- - 55
315
- - 56
316
- - 57
317
- - 58
318
- - 59
319
- - 60
320
- - 61
321
- - 62
322
- - 63
323
- - 64
324
- - 65
325
- - 66
326
- - 67
327
- - 68
328
- - 69
329
- - 70
330
- - 71
331
- - 72
332
- - 73
333
- - 74
334
- - 75
335
- - 76
336
- - 77
337
- - 78
338
- - 79
339
- - 80
340
- - 81
341
- - 82
342
- - 83
343
- - 84
344
- - 85
345
- - 86
346
- - 87
347
- - 88
348
- - 89
349
- - 90
350
- - 91
351
- - 92
352
- - 93
353
- - 94
354
- - 95
355
- - 96
356
- - 97
357
- - 98
358
- - 99
359
- - 100
360
- - 101
361
- - 102
362
- - 103
363
- - 104
364
- - 105
365
- - 106
366
- - 107
367
- - 108
368
- - 109
369
- - 110
370
- - 111
371
- - 112
372
- - 113
373
- - 114
374
- - 115
375
- - 116
376
- - 117
377
- - 118
378
- - 119
379
- - 120
380
- - 121
381
- - 122
382
- - 123
383
- - 124
384
- - 125
385
- - 126
386
- - 127
387
- - 128
388
- - 129
389
- - 130
390
- - 131
391
- - 132
392
- - 133
393
- - 134
394
- - 135
395
- - 136
396
- - 137
397
- - 138
398
- - 139
399
- - 140
400
- - 141
401
- - 142
402
- - 143
403
- - 144
404
- - 145
405
- - 150
406
- - 151
407
- - 155
408
- - 156
409
- - 157
410
- - 158
411
- - 159
412
- - 160
413
- - 161
414
- - 162
415
- - 163
416
- - 164
417
- - 165
418
- - 166
419
- - 167
420
- - 168
421
- - 169
422
- - 170
423
- - 171
424
- - 172
425
- - 173
426
- - 174
427
- - 175
428
- - 176
429
- - 177
430
- - 178
431
- - 179
432
- - 180
433
- - 181
434
- - 182
435
- - 183
436
- - 184
437
- - 185
438
- - 186
439
- UID FETCH-70e92ae4507a5481cf98aac122edceb8:
440
- - - :return
441
- - !ruby/struct:Net::IMAP::TaggedResponse
442
- tag: RUBY0006
443
- name: OK
444
- data: !ruby/struct:Net::IMAP::ResponseText
445
- code:
446
- text: Success
447
- raw_data: "RUBY0006 OK Success\r\n"
448
- - FLAGS: *12
449
- OK: *13
450
- PERMANENTFLAGS: *14
451
- UIDVALIDITY: *15
452
- EXISTS: *16
453
- RECENT: *17
454
- UIDNEXT: *18
455
- HIGHESTMODSEQ: *19
456
- FETCH:
457
- - !ruby/struct:Net::IMAP::FetchData
458
- seqno: 1
459
- attr:
460
- X-GM-THRID: 1490339162618061913
461
- X-GM-MSGID: 1490339162618061913
462
- X-GM-LABELS:
463
- - "\\Inbox"
464
- UID: 1
465
- FLAGS:
466
- - :Seen
467
- ENVELOPE: !ruby/struct:Net::IMAP::Envelope
468
- date: Wed, 14 Jan 2015 21:03:01 -0800
469
- subject: Three tips to get the most out of Gmail
470
- from:
471
- - !ruby/struct:Net::IMAP::Address
472
- name: Gmail Team
473
- route:
474
- mailbox: mail-noreply
475
- host: google.com
476
- sender:
477
- - !ruby/struct:Net::IMAP::Address
478
- name: Gmail Team
479
- route:
480
- mailbox: mail-noreply
481
- host: google.com
482
- reply_to:
483
- - !ruby/struct:Net::IMAP::Address
484
- name: Gmail Team
485
- route:
486
- mailbox: mail-noreply
487
- host: google.com
488
- to:
489
- - !ruby/struct:Net::IMAP::Address
490
- name: John Doe
491
- route:
492
- mailbox: ki0zvkyi1yzgy7xu4f4dh46nqrcecm
493
- host: gmail.com
494
- cc:
495
- bcc:
496
- in_reply_to:
497
- message_id: "<CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>"
498
- BODY[]: "MIME-Version: 1.0\r\nx-no-auto-attachment: 1\r\nReceived: by 10.70.87.10;
499
- Wed, 14 Jan 2015 21:03:01 -0800 (PST)\r\nDate: Wed, 14 Jan 2015 21:03:01
500
- -0800\r\nMessage-ID: <CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>\r\nSubject:
501
- Three tips to get the most out of Gmail\r\nFrom: Gmail Team <mail-noreply@google.com>\r\nTo:
502
- John Doe <ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com>\r\nContent-Type: multipart/alternative;
503
- boundary=bcaec51dcff73ca5e9050ca9c59a\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
504
- text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n
505
- Three tips to get the most out of Gmail\r\n[image: Google]\r\n\r\nHi John\r\n\r\nTips
506
- to get the most out of Gmail\r\n\r\n[image: Contacts]\r\nBring your contacts
507
- and mail into Gmail\r\n\r\nOn your computer, you can copy your contacts
508
- and emails from your old email\r\naccount to make the transition to Gmail
509
- even better. Learn how\r\n<https://support.google.com/mail/answer/164640?hl=3Den&ref_topic=3D1669014>=\r\n.\r\n[image:
510
- Search]\r\nFind what you need fast\r\n\r\nWith the power of Google Search
511
- right in your inbox, it's easy to sort your\r\nemail. Find what you're looking
512
- for with predictions based on email\r\ncontent, past searches and contacts.\r\n[image:
513
- Search]\r\nMuch more than email\r\n\r\nYou can send text messages and make
514
- video calls with Hangouts\r\n<https://www.google.com/intl/en/hangouts/>
515
- right from Gmail. To use this\r\nfeature on mobile, download the Hangouts
516
- app for Android\r\n<https://play.google.com/store/apps/details?id=3Dcom.google.android.talk&hl=\r\n=3Den>\r\nand
517
- Apple <https://itunes.apple.com/en/app/hangouts/id643496868?mt=3D8>\r\ndevices.\r\n\r\n\r\n[image:
518
- Gmail icon]Happy emailing,\r\nThe Gmail Team\r\n =C2=A9 2015 Google Inc.
519
- 1600 Amphitheatre Parkway, Mountain View, CA 94043\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
520
- text/html; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<!DOCTYPE
521
- html>\r\n<html><head><meta http-equiv=3D\"content-type\" content=3D\"text/html;charset=\r\n=3DUTF-8\"
522
- /><title>Three tips to get the most out of Gmail</title></head><b=\r\nody
523
- style=3D\"background-color:#e5e5e5; margin:20px 0;\"><br /><div style=3D\"=\r\nmargin:2%;\"><div
524
- style=3D\"direction:ltr; text-align:left; font-family:'Open=\r\n sans','Arial',sans-serif;
525
- color:#444; background-color:white; padding:1.5e=\r\nm; border-radius:1em;
526
- box-shadow:1px -5px 8px 2px #bbb; max-width:580px; ma=\r\nrgin:2% auto 0
527
- auto;\"><table style=3D\"background:white;width:100%\"><tr><td>=\r\n<div
528
- style=3D\"width:90px; height:54px; margin:10px auto;\"><img src=3D\"https=\r\n://services.google.com/fh/files/emails/google_logo_flat_90_color.png\"
529
- alt=\r\n=3D\"Google\" width=3D\"90\" height=3D\"34\"/></div><div style=3D\"width:90%;
530
- padd=\r\ning-bottom:10px; padding-left:15px\"><p><img alt=3D\"\" src=3D\"https://ssl.gst=\r\natic.com/accounts/services/mail/msa/gmail_icon_small.png\"
531
- style=3D\"display:=\r\nblock; float:left; margin-top:4px; margin-right:5px;\"/><span
532
- style=3D\"font-=\r\nfamily:'Open sans','Arial',sans-serif; font-weight:bold;
533
- font-size:small; l=\r\nine-height:1.4em\">Hi John</span></p><p><span style=3D\"font-family:'Open
534
- san=\r\ns','Arial',sans-serif; font-size:2.08em;\">Tips to get the most
535
- out of Gmail=\r\n</span><br/></p></div><p></p><div style=3D\"float:left;
536
- clear:both; padding:=\r\n0px 5px 10px 10px;\"><img src=3D\"https://services.google.com/fh/files/emails=\r\n/importcontacts.png\"
537
- alt=3D\"Contacts\" style=3D\"display:block;\"width=3D\"129\"=\r\nheight=3D\"129\"/></div><div
538
- style=3D\"float:left; vertical-align:middle; padd=\r\ning:10px; max-width:398px;
539
- float:left;\"><table style=3D\"vertical-align:midd=\r\nle;\"><tr><td style=3D\"font-family:'Open
540
- sans','Arial',sans-serif;\"><span st=\r\nyle=3D\"font-size:20px;\">Bring
541
- your contacts and mail into Gmail</span><br/>=\r\n<br/><span style=3D\"font-size:small;
542
- line-height:1.4em\">On your computer, y=\r\nou can copy your contacts and
543
- emails from your old email account to make th=\r\ne transition to Gmail
544
- even better. <a href=3D\"https://support.google.com/ma=\r\nil/answer/164640?hl=3Den&amp;ref_topic=3D1669014\"
545
- style=3D\"text-decoration:=\r\nnone; color:#15C\">Learn how</a>.</span></td></tr></table></div><div
546
- style=\r\n=3D\"float:left; clear:both; padding:0px 5px 10px 10px;\"><img
547
- src=3D\"https:/=\r\n/ssl.gstatic.com/mail/welcome/localized/en/welcome_search.png\"
548
- alt=3D\"Searc=\r\nh\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
549
- style=3D=\r\n\"float:left; vertical-align:middle; padding:10px; max-width:398px;
550
- float:le=\r\nft;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-family:'=\r\nOpen
551
- sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Find what
552
- y=\r\nou need fast</span><br/><br/><span style=3D\"font-size:small; line-height:1.=\r\n4em\">With
553
- the power of Google Search right in your inbox, it's easy to sort=\r\n your
554
- email. Find what you're looking for with predictions based on email c=\r\nontent,
555
- past searches and contacts.</span></td></tr></table></div><div styl=\r\ne=3D\"float:left;
556
- clear:both; padding:0px 5px 10px 10px;\"><img src=3D\"https:=\r\n//ssl.gstatic.com/accounts/services/mail/msa/welcome_hangouts.png\"
557
- alt=3D\"S=\r\nearch\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
558
- styl=\r\ne=3D\"float:left; vertical-align:middle; padding:10px; max-width:398px;
559
- floa=\r\nt:left;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-fami=\r\nly:'Open
560
- sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Much mo=\r\nre
561
- than email</span><br/><br/><span style=3D\"font-size:small; line-height:1=\r\n.4em\">You
562
- can send text messages and make video calls with <a href=3D\"https=\r\n://www.google.com/intl/en/hangouts/\"
563
- style=3D\"text-decoration:none; color:#=\r\n15C\">Hangouts</a> right from
564
- Gmail. To use this feature on mobile, download=\r\n the Hangouts app for
565
- <a href=3D\"https://play.google.com/store/apps/details=\r\n?id=3Dcom.google.android.talk&amp;hl=3Den\"
566
- style=3D\"text-decoration:none; c=\r\nolor:#15C\">Android</a> and <a href=3D\"https://itunes.apple.com/en/app/hango=\r\nuts/id643496868?mt=3D8\"
567
- style=3D\"text-decoration:none; color:#15C\">Apple</a=\r\n> devices.</span></td></tr></table></div><br/><br/>\r\n<div
568
- style=3D\"clear:both; padding-left:13px; height:6.8em;\"><table style=3D=\r\n\"width:100%;
569
- border-collapse:collapse; border:0\"><tr><td style=3D\"width:68p=\r\nx\"><img
570
- alt=3D'Gmail icon' width=3D\"49\" height=3D\"37\" src=3D\"https://ssl.gs=\r\ntatic.com/accounts/services/mail/msa/gmail_icon_large.png\"
571
- style=3D\"display=\r\n:block;\"/></td><td style=3D\"align:left; font-family:'Open
572
- sans','Arial',san=\r\ns-serif; vertical-align:bottom\"><span style=3D\"font-size:small\">Happy
573
- email=\r\ning,<br/></span><span style=3D\"font-size:x-large; line-height:1\">The
574
- Gmail =\r\nTeam</span></td></tr></table></div>\r\n</td></tr></table></div>\r\n<div
575
- style=3D\"direction:ltr;color:#777; font-size:0.8em; border-radius:1em;=\r\n
576
- padding:1em; margin:0 auto 4% auto; font-family:'Arial','Helvetica',sans-s=\r\nerif;
577
- text-align:center;\">=C2=A9 2015 Google Inc. 1600 Amphitheatre Parkway=\r\n,
578
- Mountain View, CA 94043<br/></div></div></body></html>\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a--"
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-b30698c3407aff5520448484b159fc07:
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
+ - :Hasnochildren
58
+ delim: "/"
59
+ name: Ni&APE-os
60
+ - !ruby/struct:Net::IMAP::MailboxList
61
+ attr:
62
+ - :Noselect
63
+ - :Haschildren
64
+ delim: "/"
65
+ name: "[Gmail]"
66
+ - !ruby/struct:Net::IMAP::MailboxList
67
+ attr:
68
+ - :Hasnochildren
69
+ - :All
70
+ delim: "/"
71
+ name: "[Gmail]/All Mail"
72
+ - !ruby/struct:Net::IMAP::MailboxList
73
+ attr:
74
+ - :Hasnochildren
75
+ - :Drafts
76
+ delim: "/"
77
+ name: "[Gmail]/Drafts"
78
+ - !ruby/struct:Net::IMAP::MailboxList
79
+ attr:
80
+ - :Hasnochildren
81
+ - :Important
82
+ delim: "/"
83
+ name: "[Gmail]/Important"
84
+ - !ruby/struct:Net::IMAP::MailboxList
85
+ attr:
86
+ - :Sent
87
+ - :Hasnochildren
88
+ delim: "/"
89
+ name: "[Gmail]/Sent Mail"
90
+ - !ruby/struct:Net::IMAP::MailboxList
91
+ attr:
92
+ - :Hasnochildren
93
+ - :Junk
94
+ delim: "/"
95
+ name: "[Gmail]/Spam"
96
+ - !ruby/struct:Net::IMAP::MailboxList
97
+ attr:
98
+ - :Hasnochildren
99
+ - :Flagged
100
+ delim: "/"
101
+ name: "[Gmail]/Starred"
102
+ - !ruby/struct:Net::IMAP::MailboxList
103
+ attr:
104
+ - :Trash
105
+ - :Hasnochildren
106
+ delim: "/"
107
+ name: "[Gmail]/Trash"
108
+ - !ruby/struct:Net::IMAP::MailboxList
109
+ attr:
110
+ - :Hasnochildren
111
+ delim: "/"
112
+ name: one's and two's
113
+ - !ruby/struct:Net::IMAP::MailboxList
114
+ attr:
115
+ - :Hasnochildren
116
+ delim: "/"
117
+ name: some new label
118
+ - !ruby/struct:Net::IMAP::MailboxList
119
+ attr:
120
+ - :Hasnochildren
121
+ delim: "/"
122
+ name: some other label
123
+ SELECT-868fce8856c91e50bebd43b4dbd8e071:
124
+ - - :return
125
+ - !ruby/struct:Net::IMAP::TaggedResponse
126
+ tag: RUBY0003
127
+ name: OK
128
+ data: !ruby/struct:Net::IMAP::ResponseText
129
+ code: !ruby/struct:Net::IMAP::ResponseCode
130
+ name: READ-WRITE
131
+ data:
132
+ text: " [Gmail]/All Mail selected. (Success)"
133
+ raw_data: "RUBY0003 OK [READ-WRITE] [Gmail]/All Mail selected. (Success)\r\n"
134
+ - FLAGS: &4
135
+ - - :Answered
136
+ - :Flagged
137
+ - :Draft
138
+ - :Deleted
139
+ - :Seen
140
+ - "$Phishing"
141
+ - "$NotPhishing"
142
+ OK: &5
143
+ - !ruby/struct:Net::IMAP::ResponseText
144
+ code: !ruby/struct:Net::IMAP::ResponseCode
145
+ name: PERMANENTFLAGS
146
+ data: &2
147
+ - :Answered
148
+ - :Flagged
149
+ - :Draft
150
+ - :Deleted
151
+ - :Seen
152
+ - "$Phishing"
153
+ - "$NotPhishing"
154
+ - :*
155
+ text: " Flags permitted."
156
+ - !ruby/struct:Net::IMAP::ResponseText
157
+ code: !ruby/struct:Net::IMAP::ResponseCode
158
+ name: UIDVALIDITY
159
+ data: 11
160
+ text: " UIDs valid."
161
+ - !ruby/struct:Net::IMAP::ResponseText
162
+ code: !ruby/struct:Net::IMAP::ResponseCode
163
+ name: UIDNEXT
164
+ data: 187
165
+ text: " Predicted next UID."
166
+ - !ruby/struct:Net::IMAP::ResponseText
167
+ code: !ruby/struct:Net::IMAP::ResponseCode
168
+ name: HIGHESTMODSEQ
169
+ data: '14589'
170
+ text: ''
171
+ PERMANENTFLAGS: &6
172
+ - *2
173
+ UIDVALIDITY: &7
174
+ - 11
175
+ EXISTS: &8
176
+ - 179
177
+ RECENT: &9
178
+ - 0
179
+ UIDNEXT: &10
180
+ - 187
181
+ HIGHESTMODSEQ: &11
182
+ - '14589'
183
+ - - :return
184
+ - !ruby/struct:Net::IMAP::TaggedResponse
185
+ tag: RUBY0005
186
+ name: OK
187
+ data: !ruby/struct:Net::IMAP::ResponseText
188
+ code: !ruby/struct:Net::IMAP::ResponseCode
189
+ name: READ-WRITE
190
+ data:
191
+ text: " [Gmail]/All Mail selected. (Success)"
192
+ raw_data: "RUBY0005 OK [READ-WRITE] [Gmail]/All Mail selected. (Success)\r\n"
193
+ - FLAGS: &12
194
+ - - :Answered
195
+ - :Flagged
196
+ - :Draft
197
+ - :Deleted
198
+ - :Seen
199
+ - "$Phishing"
200
+ - "$NotPhishing"
201
+ OK: &13
202
+ - !ruby/struct:Net::IMAP::ResponseText
203
+ code: !ruby/struct:Net::IMAP::ResponseCode
204
+ name: PERMANENTFLAGS
205
+ data: &3
206
+ - :Answered
207
+ - :Flagged
208
+ - :Draft
209
+ - :Deleted
210
+ - :Seen
211
+ - "$Phishing"
212
+ - "$NotPhishing"
213
+ - :*
214
+ text: " Flags permitted."
215
+ - !ruby/struct:Net::IMAP::ResponseText
216
+ code: !ruby/struct:Net::IMAP::ResponseCode
217
+ name: UIDVALIDITY
218
+ data: 11
219
+ text: " UIDs valid."
220
+ - !ruby/struct:Net::IMAP::ResponseText
221
+ code: !ruby/struct:Net::IMAP::ResponseCode
222
+ name: UIDNEXT
223
+ data: 187
224
+ text: " Predicted next UID."
225
+ - !ruby/struct:Net::IMAP::ResponseText
226
+ code: !ruby/struct:Net::IMAP::ResponseCode
227
+ name: HIGHESTMODSEQ
228
+ data: '14589'
229
+ text: ''
230
+ PERMANENTFLAGS: &14
231
+ - *3
232
+ UIDVALIDITY: &15
233
+ - 11
234
+ EXISTS: &16
235
+ - 179
236
+ RECENT: &17
237
+ - 0
238
+ UIDNEXT: &18
239
+ - 187
240
+ HIGHESTMODSEQ: &19
241
+ - '14589'
242
+ UID SEARCH-b19658413e2b63d2bac9c290a67c2cb3:
243
+ - - :return
244
+ - !ruby/struct:Net::IMAP::TaggedResponse
245
+ tag: RUBY0004
246
+ name: OK
247
+ data: !ruby/struct:Net::IMAP::ResponseText
248
+ code:
249
+ text: SEARCH completed (Success)
250
+ raw_data: "RUBY0004 OK SEARCH completed (Success)\r\n"
251
+ - FLAGS: *4
252
+ OK: *5
253
+ PERMANENTFLAGS: *6
254
+ UIDVALIDITY: *7
255
+ EXISTS: *8
256
+ RECENT: *9
257
+ UIDNEXT: *10
258
+ HIGHESTMODSEQ: *11
259
+ SEARCH:
260
+ - - 1
261
+ - 2
262
+ - 3
263
+ - 4
264
+ - 5
265
+ - 6
266
+ - 7
267
+ - 8
268
+ - 9
269
+ - 10
270
+ - 11
271
+ - 12
272
+ - 13
273
+ - 14
274
+ - 15
275
+ - 16
276
+ - 17
277
+ - 18
278
+ - 19
279
+ - 20
280
+ - 21
281
+ - 22
282
+ - 23
283
+ - 24
284
+ - 25
285
+ - 26
286
+ - 27
287
+ - 28
288
+ - 29
289
+ - 30
290
+ - 31
291
+ - 32
292
+ - 33
293
+ - 34
294
+ - 35
295
+ - 36
296
+ - 37
297
+ - 38
298
+ - 39
299
+ - 40
300
+ - 41
301
+ - 42
302
+ - 43
303
+ - 44
304
+ - 45
305
+ - 46
306
+ - 47
307
+ - 48
308
+ - 49
309
+ - 50
310
+ - 51
311
+ - 52
312
+ - 53
313
+ - 54
314
+ - 55
315
+ - 56
316
+ - 57
317
+ - 58
318
+ - 59
319
+ - 60
320
+ - 61
321
+ - 62
322
+ - 63
323
+ - 64
324
+ - 65
325
+ - 66
326
+ - 67
327
+ - 68
328
+ - 69
329
+ - 70
330
+ - 71
331
+ - 72
332
+ - 73
333
+ - 74
334
+ - 75
335
+ - 76
336
+ - 77
337
+ - 78
338
+ - 79
339
+ - 80
340
+ - 81
341
+ - 82
342
+ - 83
343
+ - 84
344
+ - 85
345
+ - 86
346
+ - 87
347
+ - 88
348
+ - 89
349
+ - 90
350
+ - 91
351
+ - 92
352
+ - 93
353
+ - 94
354
+ - 95
355
+ - 96
356
+ - 97
357
+ - 98
358
+ - 99
359
+ - 100
360
+ - 101
361
+ - 102
362
+ - 103
363
+ - 104
364
+ - 105
365
+ - 106
366
+ - 107
367
+ - 108
368
+ - 109
369
+ - 110
370
+ - 111
371
+ - 112
372
+ - 113
373
+ - 114
374
+ - 115
375
+ - 116
376
+ - 117
377
+ - 118
378
+ - 119
379
+ - 120
380
+ - 121
381
+ - 122
382
+ - 123
383
+ - 124
384
+ - 125
385
+ - 126
386
+ - 127
387
+ - 128
388
+ - 129
389
+ - 130
390
+ - 131
391
+ - 132
392
+ - 133
393
+ - 134
394
+ - 135
395
+ - 136
396
+ - 137
397
+ - 138
398
+ - 139
399
+ - 140
400
+ - 141
401
+ - 142
402
+ - 143
403
+ - 144
404
+ - 145
405
+ - 150
406
+ - 151
407
+ - 155
408
+ - 156
409
+ - 157
410
+ - 158
411
+ - 159
412
+ - 160
413
+ - 161
414
+ - 162
415
+ - 163
416
+ - 164
417
+ - 165
418
+ - 166
419
+ - 167
420
+ - 168
421
+ - 169
422
+ - 170
423
+ - 171
424
+ - 172
425
+ - 173
426
+ - 174
427
+ - 175
428
+ - 176
429
+ - 177
430
+ - 178
431
+ - 179
432
+ - 180
433
+ - 181
434
+ - 182
435
+ - 183
436
+ - 184
437
+ - 185
438
+ - 186
439
+ UID FETCH-70e92ae4507a5481cf98aac122edceb8:
440
+ - - :return
441
+ - !ruby/struct:Net::IMAP::TaggedResponse
442
+ tag: RUBY0006
443
+ name: OK
444
+ data: !ruby/struct:Net::IMAP::ResponseText
445
+ code:
446
+ text: Success
447
+ raw_data: "RUBY0006 OK Success\r\n"
448
+ - FLAGS: *12
449
+ OK: *13
450
+ PERMANENTFLAGS: *14
451
+ UIDVALIDITY: *15
452
+ EXISTS: *16
453
+ RECENT: *17
454
+ UIDNEXT: *18
455
+ HIGHESTMODSEQ: *19
456
+ FETCH:
457
+ - !ruby/struct:Net::IMAP::FetchData
458
+ seqno: 1
459
+ attr:
460
+ X-GM-THRID: 1490339162618061913
461
+ X-GM-MSGID: 1490339162618061913
462
+ X-GM-LABELS:
463
+ - "\\Inbox"
464
+ UID: 1
465
+ FLAGS:
466
+ - :Seen
467
+ ENVELOPE: !ruby/struct:Net::IMAP::Envelope
468
+ date: Wed, 14 Jan 2015 21:03:01 -0800
469
+ subject: Three tips to get the most out of Gmail
470
+ from:
471
+ - !ruby/struct:Net::IMAP::Address
472
+ name: Gmail Team
473
+ route:
474
+ mailbox: mail-noreply
475
+ host: google.com
476
+ sender:
477
+ - !ruby/struct:Net::IMAP::Address
478
+ name: Gmail Team
479
+ route:
480
+ mailbox: mail-noreply
481
+ host: google.com
482
+ reply_to:
483
+ - !ruby/struct:Net::IMAP::Address
484
+ name: Gmail Team
485
+ route:
486
+ mailbox: mail-noreply
487
+ host: google.com
488
+ to:
489
+ - !ruby/struct:Net::IMAP::Address
490
+ name: John Doe
491
+ route:
492
+ mailbox: ki0zvkyi1yzgy7xu4f4dh46nqrcecm
493
+ host: gmail.com
494
+ cc:
495
+ bcc:
496
+ in_reply_to:
497
+ message_id: "<CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>"
498
+ BODY[]: "MIME-Version: 1.0\r\nx-no-auto-attachment: 1\r\nReceived: by 10.70.87.10;
499
+ Wed, 14 Jan 2015 21:03:01 -0800 (PST)\r\nDate: Wed, 14 Jan 2015 21:03:01
500
+ -0800\r\nMessage-ID: <CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>\r\nSubject:
501
+ Three tips to get the most out of Gmail\r\nFrom: Gmail Team <mail-noreply@google.com>\r\nTo:
502
+ John Doe <ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com>\r\nContent-Type: multipart/alternative;
503
+ boundary=bcaec51dcff73ca5e9050ca9c59a\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
504
+ text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n
505
+ Three tips to get the most out of Gmail\r\n[image: Google]\r\n\r\nHi John\r\n\r\nTips
506
+ to get the most out of Gmail\r\n\r\n[image: Contacts]\r\nBring your contacts
507
+ and mail into Gmail\r\n\r\nOn your computer, you can copy your contacts
508
+ and emails from your old email\r\naccount to make the transition to Gmail
509
+ even better. Learn how\r\n<https://support.google.com/mail/answer/164640?hl=3Den&ref_topic=3D1669014>=\r\n.\r\n[image:
510
+ Search]\r\nFind what you need fast\r\n\r\nWith the power of Google Search
511
+ right in your inbox, it's easy to sort your\r\nemail. Find what you're looking
512
+ for with predictions based on email\r\ncontent, past searches and contacts.\r\n[image:
513
+ Search]\r\nMuch more than email\r\n\r\nYou can send text messages and make
514
+ video calls with Hangouts\r\n<https://www.google.com/intl/en/hangouts/>
515
+ right from Gmail. To use this\r\nfeature on mobile, download the Hangouts
516
+ app for Android\r\n<https://play.google.com/store/apps/details?id=3Dcom.google.android.talk&hl=\r\n=3Den>\r\nand
517
+ Apple <https://itunes.apple.com/en/app/hangouts/id643496868?mt=3D8>\r\ndevices.\r\n\r\n\r\n[image:
518
+ Gmail icon]Happy emailing,\r\nThe Gmail Team\r\n =C2=A9 2015 Google Inc.
519
+ 1600 Amphitheatre Parkway, Mountain View, CA 94043\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
520
+ text/html; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<!DOCTYPE
521
+ html>\r\n<html><head><meta http-equiv=3D\"content-type\" content=3D\"text/html;charset=\r\n=3DUTF-8\"
522
+ /><title>Three tips to get the most out of Gmail</title></head><b=\r\nody
523
+ style=3D\"background-color:#e5e5e5; margin:20px 0;\"><br /><div style=3D\"=\r\nmargin:2%;\"><div
524
+ style=3D\"direction:ltr; text-align:left; font-family:'Open=\r\n sans','Arial',sans-serif;
525
+ color:#444; background-color:white; padding:1.5e=\r\nm; border-radius:1em;
526
+ box-shadow:1px -5px 8px 2px #bbb; max-width:580px; ma=\r\nrgin:2% auto 0
527
+ auto;\"><table style=3D\"background:white;width:100%\"><tr><td>=\r\n<div
528
+ style=3D\"width:90px; height:54px; margin:10px auto;\"><img src=3D\"https=\r\n://services.google.com/fh/files/emails/google_logo_flat_90_color.png\"
529
+ alt=\r\n=3D\"Google\" width=3D\"90\" height=3D\"34\"/></div><div style=3D\"width:90%;
530
+ padd=\r\ning-bottom:10px; padding-left:15px\"><p><img alt=3D\"\" src=3D\"https://ssl.gst=\r\natic.com/accounts/services/mail/msa/gmail_icon_small.png\"
531
+ style=3D\"display:=\r\nblock; float:left; margin-top:4px; margin-right:5px;\"/><span
532
+ style=3D\"font-=\r\nfamily:'Open sans','Arial',sans-serif; font-weight:bold;
533
+ font-size:small; l=\r\nine-height:1.4em\">Hi John</span></p><p><span style=3D\"font-family:'Open
534
+ san=\r\ns','Arial',sans-serif; font-size:2.08em;\">Tips to get the most
535
+ out of Gmail=\r\n</span><br/></p></div><p></p><div style=3D\"float:left;
536
+ clear:both; padding:=\r\n0px 5px 10px 10px;\"><img src=3D\"https://services.google.com/fh/files/emails=\r\n/importcontacts.png\"
537
+ alt=3D\"Contacts\" style=3D\"display:block;\"width=3D\"129\"=\r\nheight=3D\"129\"/></div><div
538
+ style=3D\"float:left; vertical-align:middle; padd=\r\ning:10px; max-width:398px;
539
+ float:left;\"><table style=3D\"vertical-align:midd=\r\nle;\"><tr><td style=3D\"font-family:'Open
540
+ sans','Arial',sans-serif;\"><span st=\r\nyle=3D\"font-size:20px;\">Bring
541
+ your contacts and mail into Gmail</span><br/>=\r\n<br/><span style=3D\"font-size:small;
542
+ line-height:1.4em\">On your computer, y=\r\nou can copy your contacts and
543
+ emails from your old email account to make th=\r\ne transition to Gmail
544
+ even better. <a href=3D\"https://support.google.com/ma=\r\nil/answer/164640?hl=3Den&amp;ref_topic=3D1669014\"
545
+ style=3D\"text-decoration:=\r\nnone; color:#15C\">Learn how</a>.</span></td></tr></table></div><div
546
+ style=\r\n=3D\"float:left; clear:both; padding:0px 5px 10px 10px;\"><img
547
+ src=3D\"https:/=\r\n/ssl.gstatic.com/mail/welcome/localized/en/welcome_search.png\"
548
+ alt=3D\"Searc=\r\nh\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
549
+ style=3D=\r\n\"float:left; vertical-align:middle; padding:10px; max-width:398px;
550
+ float:le=\r\nft;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-family:'=\r\nOpen
551
+ sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Find what
552
+ y=\r\nou need fast</span><br/><br/><span style=3D\"font-size:small; line-height:1.=\r\n4em\">With
553
+ the power of Google Search right in your inbox, it's easy to sort=\r\n your
554
+ email. Find what you're looking for with predictions based on email c=\r\nontent,
555
+ past searches and contacts.</span></td></tr></table></div><div styl=\r\ne=3D\"float:left;
556
+ clear:both; padding:0px 5px 10px 10px;\"><img src=3D\"https:=\r\n//ssl.gstatic.com/accounts/services/mail/msa/welcome_hangouts.png\"
557
+ alt=3D\"S=\r\nearch\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
558
+ styl=\r\ne=3D\"float:left; vertical-align:middle; padding:10px; max-width:398px;
559
+ floa=\r\nt:left;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-fami=\r\nly:'Open
560
+ sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Much mo=\r\nre
561
+ than email</span><br/><br/><span style=3D\"font-size:small; line-height:1=\r\n.4em\">You
562
+ can send text messages and make video calls with <a href=3D\"https=\r\n://www.google.com/intl/en/hangouts/\"
563
+ style=3D\"text-decoration:none; color:#=\r\n15C\">Hangouts</a> right from
564
+ Gmail. To use this feature on mobile, download=\r\n the Hangouts app for
565
+ <a href=3D\"https://play.google.com/store/apps/details=\r\n?id=3Dcom.google.android.talk&amp;hl=3Den\"
566
+ style=3D\"text-decoration:none; c=\r\nolor:#15C\">Android</a> and <a href=3D\"https://itunes.apple.com/en/app/hango=\r\nuts/id643496868?mt=3D8\"
567
+ style=3D\"text-decoration:none; color:#15C\">Apple</a=\r\n> devices.</span></td></tr></table></div><br/><br/>\r\n<div
568
+ style=3D\"clear:both; padding-left:13px; height:6.8em;\"><table style=3D=\r\n\"width:100%;
569
+ border-collapse:collapse; border:0\"><tr><td style=3D\"width:68p=\r\nx\"><img
570
+ alt=3D'Gmail icon' width=3D\"49\" height=3D\"37\" src=3D\"https://ssl.gs=\r\ntatic.com/accounts/services/mail/msa/gmail_icon_large.png\"
571
+ style=3D\"display=\r\n:block;\"/></td><td style=3D\"align:left; font-family:'Open
572
+ sans','Arial',san=\r\ns-serif; vertical-align:bottom\"><span style=3D\"font-size:small\">Happy
573
+ email=\r\ning,<br/></span><span style=3D\"font-size:x-large; line-height:1\">The
574
+ Gmail =\r\nTeam</span></td></tr></table></div>\r\n</td></tr></table></div>\r\n<div
575
+ style=3D\"direction:ltr;color:#777; font-size:0.8em; border-radius:1em;=\r\n
576
+ padding:1em; margin:0 auto 4% auto; font-family:'Arial','Helvetica',sans-s=\r\nerif;
577
+ text-align:center;\">=C2=A9 2015 Google Inc. 1600 Amphitheatre Parkway=\r\n,
578
+ Mountain View, CA 94043<br/></div></div></body></html>\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a--"