gmail 0.6.0 → 0.7.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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +27 -27
  4. data/.rspec +1 -1
  5. data/.rubocop.yml +53 -13
  6. data/.rubocop_todo.yml +299 -239
  7. data/.travis.yml +19 -19
  8. data/CHANGELOG.md +152 -145
  9. data/Gemfile +5 -3
  10. data/LICENSE +21 -21
  11. data/README.md +380 -355
  12. data/Rakefile +44 -46
  13. data/gmail.gemspec +32 -34
  14. data/lib/gmail.rb +72 -78
  15. data/lib/gmail/client.rb +35 -34
  16. data/lib/gmail/client/base.rb +244 -229
  17. data/lib/gmail/client/plain.rb +24 -24
  18. data/lib/gmail/client/xoauth.rb +67 -68
  19. data/lib/gmail/client/xoauth2.rb +39 -39
  20. data/lib/gmail/imap_extensions.rb +156 -159
  21. data/lib/gmail/labels.rb +80 -79
  22. data/lib/gmail/mailbox.rb +178 -175
  23. data/lib/gmail/message.rb +212 -207
  24. data/lib/gmail/version.rb +3 -3
  25. data/spec/account.yml.example +1 -1
  26. data/spec/account.yml.obfus +2 -2
  27. data/spec/gmail/client/base_spec.rb +5 -5
  28. data/spec/gmail/client/plain_spec.rb +169 -169
  29. data/spec/gmail/client/xoauth2_spec.rb +186 -186
  30. data/spec/gmail/client/xoauth_spec.rb +5 -5
  31. data/spec/gmail/client_spec.rb +5 -5
  32. data/spec/gmail/imap_extensions_spec.rb +47 -47
  33. data/spec/gmail/labels_spec.rb +27 -27
  34. data/spec/gmail/mailbox_spec.rb +84 -84
  35. data/spec/gmail/message_spec.rb +181 -181
  36. data/spec/gmail_spec.rb +40 -39
  37. data/spec/recordings/gmail/_new_connects_with_client_and_give_it_context_when_block_given.yml +61 -28
  38. data/spec/recordings/gmail/_new_connects_with_gmail_service_and_return_valid_connection_object.yml +43 -28
  39. data/spec/recordings/gmail/_new_does_not_raise_error_when_couldn_t_connect_with_given_account.yml +21 -13
  40. data/spec/recordings/gmail/_new_raises_error_when_couldn_t_connect_with_given_account.yml +21 -13
  41. data/spec/recordings/gmail_client_plain/instance/delivers_inline_composed_email.yml +61 -42
  42. data/spec/recordings/gmail_client_plain/instance/does_not_log_in_when_given_gmail_account_is_invalid.yml +21 -13
  43. data/spec/recordings/gmail_client_plain/instance/does_not_raise_error_even_though_gmail_account_is_invalid.yml +21 -13
  44. data/spec/recordings/gmail_client_plain/instance/labels/checks_if_there_is_given_label_defined.yml +409 -196
  45. data/spec/recordings/gmail_client_plain/instance/labels/creates_given_label.yml +280 -151
  46. data/spec/recordings/gmail_client_plain/instance/labels/removes_existing_label.yml +271 -146
  47. data/spec/recordings/gmail_client_plain/instance/labels/returns_list_of_all_available_labels.yml +227 -113
  48. data/spec/recordings/gmail_client_plain/instance/properly_logs_in_to_valid_gmail_account.yml +61 -42
  49. data/spec/recordings/gmail_client_plain/instance/properly_logs_out_from_gmail.yml +61 -42
  50. data/spec/recordings/gmail_client_plain/instance/properly_switches_to_given_mailbox.yml +164 -109
  51. data/spec/recordings/gmail_client_plain/instance/properly_switches_to_given_mailbox_using_block_style.yml +164 -109
  52. data/spec/recordings/gmail_client_plain/instance/raises_error_when_given_gmail_account_is_invalid_and_errors_enabled.yml +21 -13
  53. data/spec/recordings/gmail_client_xo_auth2/instance/does_not_log_in_when_given_gmail_account_is_invalid.yml +24 -13
  54. data/spec/recordings/gmail_client_xo_auth2/instance/labels/checks_if_there_is_given_label_defined.yml +39 -27
  55. data/spec/recordings/gmail_client_xo_auth2/instance/labels/creates_given_label.yml +52 -39
  56. data/spec/recordings/gmail_client_xo_auth2/instance/labels/removes_existing_label.yml +52 -39
  57. data/spec/recordings/gmail_client_xo_auth2/instance/labels/returns_list_of_all_available_labels.yml +39 -27
  58. data/spec/recordings/gmail_client_xo_auth2/instance/properly_logs_in_to_valid_gmail_account.yml +26 -15
  59. data/spec/recordings/gmail_client_xo_auth2/instance/properly_logs_out_from_gmail.yml +26 -15
  60. data/spec/recordings/gmail_client_xo_auth2/instance/properly_switches_to_given_mailbox.yml +63 -40
  61. data/spec/recordings/gmail_client_xo_auth2/instance/properly_switches_to_given_mailbox_using_block_style.yml +63 -40
  62. data/spec/recordings/gmail_client_xo_auth2/instance/raises_error_when_given_gmail_account_is_invalid_and_errors_enabled.yml +24 -13
  63. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/all/localizes_into_the_appropriate_label.yml +229 -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 +229 -110
  65. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/drafts/localizes_into_the_appropriate_label.yml +229 -116
  66. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/flagged/localizes_into_the_appropriate_label.yml +229 -116
  67. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/important/localizes_into_the_appropriate_label.yml +229 -116
  68. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/inbox/localizes_into_the_appropriate_label.yml +61 -42
  69. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/junk/localizes_into_the_appropriate_label.yml +229 -116
  70. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/sent/localizes_into_the_appropriate_label.yml +229 -116
  71. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/trash/localizes_into_the_appropriate_label.yml +229 -116
  72. data/spec/recordings/gmail_mailbox/instance/counts_all_emails.yml +595 -277
  73. data/spec/recordings/gmail_mailbox/instance/finds_messages.yml +1049 -586
  74. data/spec/recordings/gmail_mailbox/instance/waits_once.yml +191 -136
  75. data/spec/recordings/gmail_mailbox/instance/waits_repeatedly.yml +217 -141
  76. data/spec/recordings/gmail_mailbox/instance/waits_with_29-minute_re-issue.yml +188 -136
  77. data/spec/recordings/gmail_mailbox/instance/waits_with_an_unblocked_connection.yml +644 -207
  78. data/spec/recordings/gmail_mailbox/on_initialize/sets_client_and_name.yml +61 -42
  79. data/spec/recordings/gmail_mailbox/on_initialize/works_in_inbox_by_default.yml +61 -42
  80. data/spec/recordings/gmail_message/initialize/sets_prefetch_attrs.yml +1068 -578
  81. data/spec/recordings/gmail_message/initialize/sets_uid_and_mailbox.yml +1068 -580
  82. data/spec/recordings/gmail_message/instance_methods/deletes_itself.yml +1084 -637
  83. data/spec/recordings/gmail_message/instance_methods/marks_itself_read.yml +1137 -682
  84. data/spec/recordings/gmail_message/instance_methods/marks_itself_unread.yml +1153 -686
  85. data/spec/recordings/gmail_message/instance_methods/moves_from_one_tag_to_other.yml +1447 -862
  86. data/spec/recordings/gmail_message/instance_methods/removes_a_given_label.yml +1288 -776
  87. data/spec/recordings/gmail_message/instance_methods/removes_a_given_label_with_old_method.yml +1288 -776
  88. data/spec/recordings/gmail_message/instance_methods/sets_given_label.yml +1165 -690
  89. data/spec/recordings/gmail_message/instance_methods/sets_given_label_with_old_method.yml +1157 -691
  90. data/spec/spec_helper.rb +56 -53
  91. data/spec/support/imap_mock.rb +181 -181
  92. data/spec/support/obfuscation.rb +49 -52
  93. metadata +21 -90
  94. data/spec/recordings/gmail_client_plain/instance/_connection_automatically_logs_in_to_gmail_account_when_it_s_called.yml +0 -42
@@ -1,586 +1,1049 @@
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
29
- SELECT-505f013d922af4caf157dc91d6b45a60:
30
- - - :return
31
- - !ruby/struct:Net::IMAP::TaggedResponse
32
- tag: RUBY0002
33
- name: OK
34
- data: !ruby/struct:Net::IMAP::ResponseText
35
- code: !ruby/struct:Net::IMAP::ResponseCode
36
- name: READ-WRITE
37
- data:
38
- text: " INBOX selected. (Success)"
39
- raw_data: "RUBY0002 OK [READ-WRITE] INBOX selected. (Success)\r\n"
40
- - FLAGS: &4
41
- - - :Answered
42
- - :Flagged
43
- - :Draft
44
- - :Deleted
45
- - :Seen
46
- - "$Phishing"
47
- - "$NotPhishing"
48
- OK: &5
49
- - !ruby/struct:Net::IMAP::ResponseText
50
- code: !ruby/struct:Net::IMAP::ResponseCode
51
- name: PERMANENTFLAGS
52
- data: &1
53
- - :Answered
54
- - :Flagged
55
- - :Draft
56
- - :Deleted
57
- - :Seen
58
- - "$Phishing"
59
- - "$NotPhishing"
60
- - :*
61
- text: " Flags permitted."
62
- - !ruby/struct:Net::IMAP::ResponseText
63
- code: !ruby/struct:Net::IMAP::ResponseCode
64
- name: UIDVALIDITY
65
- data: 1
66
- text: " UIDs valid."
67
- - !ruby/struct:Net::IMAP::ResponseText
68
- code: !ruby/struct:Net::IMAP::ResponseCode
69
- name: UIDNEXT
70
- data: 190
71
- text: " Predicted next UID."
72
- - !ruby/struct:Net::IMAP::ResponseText
73
- code: !ruby/struct:Net::IMAP::ResponseCode
74
- name: HIGHESTMODSEQ
75
- data: '14699'
76
- text: ''
77
- PERMANENTFLAGS: &6
78
- - *1
79
- UIDVALIDITY: &7
80
- - 1
81
- EXISTS: &8
82
- - 181
83
- RECENT: &9
84
- - 0
85
- UIDNEXT: &10
86
- - 190
87
- HIGHESTMODSEQ: &11
88
- - '14699'
89
- - - :return
90
- - !ruby/struct:Net::IMAP::TaggedResponse
91
- tag: RUBY0004
92
- name: OK
93
- data: !ruby/struct:Net::IMAP::ResponseText
94
- code: !ruby/struct:Net::IMAP::ResponseCode
95
- name: READ-WRITE
96
- data:
97
- text: " INBOX selected. (Success)"
98
- raw_data: "RUBY0004 OK [READ-WRITE] INBOX selected. (Success)\r\n"
99
- - FLAGS: &12
100
- - - :Answered
101
- - :Flagged
102
- - :Draft
103
- - :Deleted
104
- - :Seen
105
- - "$Phishing"
106
- - "$NotPhishing"
107
- OK: &13
108
- - !ruby/struct:Net::IMAP::ResponseText
109
- code: !ruby/struct:Net::IMAP::ResponseCode
110
- name: PERMANENTFLAGS
111
- data: &2
112
- - :Answered
113
- - :Flagged
114
- - :Draft
115
- - :Deleted
116
- - :Seen
117
- - "$Phishing"
118
- - "$NotPhishing"
119
- - :*
120
- text: " Flags permitted."
121
- - !ruby/struct:Net::IMAP::ResponseText
122
- code: !ruby/struct:Net::IMAP::ResponseCode
123
- name: UIDVALIDITY
124
- data: 1
125
- text: " UIDs valid."
126
- - !ruby/struct:Net::IMAP::ResponseText
127
- code: !ruby/struct:Net::IMAP::ResponseCode
128
- name: UIDNEXT
129
- data: 190
130
- text: " Predicted next UID."
131
- - !ruby/struct:Net::IMAP::ResponseText
132
- code: !ruby/struct:Net::IMAP::ResponseCode
133
- name: HIGHESTMODSEQ
134
- data: '14699'
135
- text: ''
136
- PERMANENTFLAGS: &14
137
- - *2
138
- UIDVALIDITY: &15
139
- - 1
140
- EXISTS: &16
141
- - 181
142
- RECENT: &17
143
- - 0
144
- UIDNEXT: &18
145
- - 190
146
- HIGHESTMODSEQ: &19
147
- - '14699'
148
- - - :return
149
- - !ruby/struct:Net::IMAP::TaggedResponse
150
- tag: RUBY0006
151
- name: OK
152
- data: !ruby/struct:Net::IMAP::ResponseText
153
- code: !ruby/struct:Net::IMAP::ResponseCode
154
- name: READ-WRITE
155
- data:
156
- text: " INBOX selected. (Success)"
157
- raw_data: "RUBY0006 OK [READ-WRITE] INBOX selected. (Success)\r\n"
158
- - FLAGS: &20
159
- - - :Answered
160
- - :Flagged
161
- - :Draft
162
- - :Deleted
163
- - :Seen
164
- - "$Phishing"
165
- - "$NotPhishing"
166
- OK: &21
167
- - !ruby/struct:Net::IMAP::ResponseText
168
- code: !ruby/struct:Net::IMAP::ResponseCode
169
- name: PERMANENTFLAGS
170
- data: &3
171
- - :Answered
172
- - :Flagged
173
- - :Draft
174
- - :Deleted
175
- - :Seen
176
- - "$Phishing"
177
- - "$NotPhishing"
178
- - :*
179
- text: " Flags permitted."
180
- - !ruby/struct:Net::IMAP::ResponseText
181
- code: !ruby/struct:Net::IMAP::ResponseCode
182
- name: UIDVALIDITY
183
- data: 1
184
- text: " UIDs valid."
185
- - !ruby/struct:Net::IMAP::ResponseText
186
- code: !ruby/struct:Net::IMAP::ResponseCode
187
- name: UIDNEXT
188
- data: 190
189
- text: " Predicted next UID."
190
- - !ruby/struct:Net::IMAP::ResponseText
191
- code: !ruby/struct:Net::IMAP::ResponseCode
192
- name: HIGHESTMODSEQ
193
- data: '14699'
194
- text: ''
195
- PERMANENTFLAGS: &22
196
- - *3
197
- UIDVALIDITY: &23
198
- - 1
199
- EXISTS: &24
200
- - 181
201
- RECENT: &25
202
- - 0
203
- UIDNEXT: &26
204
- - 190
205
- HIGHESTMODSEQ: &27
206
- - '14699'
207
- UID SEARCH-b19658413e2b63d2bac9c290a67c2cb3:
208
- - - :return
209
- - !ruby/struct:Net::IMAP::TaggedResponse
210
- tag: RUBY0003
211
- name: OK
212
- data: !ruby/struct:Net::IMAP::ResponseText
213
- code:
214
- text: SEARCH completed (Success)
215
- raw_data: "RUBY0003 OK SEARCH completed (Success)\r\n"
216
- - FLAGS: *4
217
- OK: *5
218
- PERMANENTFLAGS: *6
219
- UIDVALIDITY: *7
220
- EXISTS: *8
221
- RECENT: *9
222
- UIDNEXT: *10
223
- HIGHESTMODSEQ: *11
224
- SEARCH:
225
- - - 1
226
- - 2
227
- - 3
228
- - 4
229
- - 5
230
- - 6
231
- - 7
232
- - 8
233
- - 9
234
- - 10
235
- - 11
236
- - 12
237
- - 13
238
- - 14
239
- - 15
240
- - 16
241
- - 17
242
- - 18
243
- - 19
244
- - 20
245
- - 21
246
- - 22
247
- - 23
248
- - 24
249
- - 25
250
- - 26
251
- - 27
252
- - 28
253
- - 29
254
- - 30
255
- - 31
256
- - 32
257
- - 33
258
- - 34
259
- - 35
260
- - 36
261
- - 37
262
- - 38
263
- - 39
264
- - 40
265
- - 41
266
- - 42
267
- - 43
268
- - 44
269
- - 45
270
- - 46
271
- - 47
272
- - 48
273
- - 49
274
- - 50
275
- - 51
276
- - 52
277
- - 53
278
- - 54
279
- - 55
280
- - 56
281
- - 57
282
- - 58
283
- - 59
284
- - 60
285
- - 61
286
- - 62
287
- - 63
288
- - 64
289
- - 65
290
- - 66
291
- - 67
292
- - 68
293
- - 69
294
- - 70
295
- - 71
296
- - 72
297
- - 73
298
- - 74
299
- - 75
300
- - 76
301
- - 77
302
- - 78
303
- - 79
304
- - 80
305
- - 81
306
- - 82
307
- - 83
308
- - 84
309
- - 85
310
- - 86
311
- - 87
312
- - 88
313
- - 89
314
- - 90
315
- - 91
316
- - 92
317
- - 93
318
- - 94
319
- - 95
320
- - 96
321
- - 97
322
- - 98
323
- - 99
324
- - 100
325
- - 101
326
- - 102
327
- - 103
328
- - 104
329
- - 105
330
- - 106
331
- - 107
332
- - 108
333
- - 109
334
- - 110
335
- - 111
336
- - 112
337
- - 113
338
- - 114
339
- - 115
340
- - 116
341
- - 117
342
- - 118
343
- - 119
344
- - 120
345
- - 121
346
- - 122
347
- - 123
348
- - 124
349
- - 125
350
- - 126
351
- - 127
352
- - 128
353
- - 129
354
- - 130
355
- - 131
356
- - 132
357
- - 133
358
- - 134
359
- - 135
360
- - 136
361
- - 137
362
- - 138
363
- - 139
364
- - 140
365
- - 141
366
- - 142
367
- - 143
368
- - 144
369
- - 145
370
- - 150
371
- - 151
372
- - 156
373
- - 157
374
- - 158
375
- - 159
376
- - 160
377
- - 161
378
- - 162
379
- - 163
380
- - 164
381
- - 165
382
- - 166
383
- - 167
384
- - 168
385
- - 169
386
- - 170
387
- - 171
388
- - 172
389
- - 173
390
- - 174
391
- - 175
392
- - 176
393
- - 177
394
- - 178
395
- - 179
396
- - 180
397
- - 181
398
- - 182
399
- - 183
400
- - 184
401
- - 185
402
- - 186
403
- - 187
404
- - 188
405
- - 189
406
- UID FETCH-70e92ae4507a5481cf98aac122edceb8:
407
- - - :return
408
- - !ruby/struct:Net::IMAP::TaggedResponse
409
- tag: RUBY0005
410
- name: OK
411
- data: !ruby/struct:Net::IMAP::ResponseText
412
- code:
413
- text: Success
414
- raw_data: "RUBY0005 OK Success\r\n"
415
- - FLAGS: *12
416
- OK: *13
417
- PERMANENTFLAGS: *14
418
- UIDVALIDITY: *15
419
- EXISTS: *16
420
- RECENT: *17
421
- UIDNEXT: *18
422
- HIGHESTMODSEQ: *19
423
- FETCH:
424
- - !ruby/struct:Net::IMAP::FetchData
425
- seqno: 1
426
- attr:
427
- X-GM-THRID: 1490339162618061913
428
- X-GM-MSGID: 1490339162618061913
429
- X-GM-LABELS: []
430
- UID: 1
431
- FLAGS:
432
- - :Seen
433
- ENVELOPE: !ruby/struct:Net::IMAP::Envelope
434
- date: Wed, 14 Jan 2015 21:03:01 -0800
435
- subject: Three tips to get the most out of Gmail
436
- from:
437
- - !ruby/struct:Net::IMAP::Address
438
- name: Gmail Team
439
- route:
440
- mailbox: mail-noreply
441
- host: google.com
442
- sender:
443
- - !ruby/struct:Net::IMAP::Address
444
- name: Gmail Team
445
- route:
446
- mailbox: mail-noreply
447
- host: google.com
448
- reply_to:
449
- - !ruby/struct:Net::IMAP::Address
450
- name: Gmail Team
451
- route:
452
- mailbox: mail-noreply
453
- host: google.com
454
- to:
455
- - !ruby/struct:Net::IMAP::Address
456
- name: John Doe
457
- route:
458
- mailbox: ki0zvkyi1yzgy7xu4f4dh46nqrcecm
459
- host: gmail.com
460
- cc:
461
- bcc:
462
- in_reply_to:
463
- message_id: "<CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>"
464
- BODY[]: "MIME-Version: 1.0\r\nx-no-auto-attachment: 1\r\nReceived: by 10.70.87.10;
465
- Wed, 14 Jan 2015 21:03:01 -0800 (PST)\r\nDate: Wed, 14 Jan 2015 21:03:01
466
- -0800\r\nMessage-ID: <CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>\r\nSubject:
467
- Three tips to get the most out of Gmail\r\nFrom: Gmail Team <mail-noreply@google.com>\r\nTo:
468
- John Doe <ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com>\r\nContent-Type: multipart/alternative;
469
- boundary=bcaec51dcff73ca5e9050ca9c59a\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
470
- text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n
471
- Three tips to get the most out of Gmail\r\n[image: Google]\r\n\r\nHi John\r\n\r\nTips
472
- to get the most out of Gmail\r\n\r\n[image: Contacts]\r\nBring your contacts
473
- and mail into Gmail\r\n\r\nOn your computer, you can copy your contacts
474
- and emails from your old email\r\naccount to make the transition to Gmail
475
- even better. Learn how\r\n<https://support.google.com/mail/answer/164640?hl=3Den&ref_topic=3D1669014>=\r\n.\r\n[image:
476
- Search]\r\nFind what you need fast\r\n\r\nWith the power of Google Search
477
- right in your inbox, it's easy to sort your\r\nemail. Find what you're looking
478
- for with predictions based on email\r\ncontent, past searches and contacts.\r\n[image:
479
- Search]\r\nMuch more than email\r\n\r\nYou can send text messages and make
480
- video calls with Hangouts\r\n<https://www.google.com/intl/en/hangouts/>
481
- right from Gmail. To use this\r\nfeature on mobile, download the Hangouts
482
- app for Android\r\n<https://play.google.com/store/apps/details?id=3Dcom.google.android.talk&hl=\r\n=3Den>\r\nand
483
- Apple <https://itunes.apple.com/en/app/hangouts/id643496868?mt=3D8>\r\ndevices.\r\n\r\n\r\n[image:
484
- Gmail icon]Happy emailing,\r\nThe Gmail Team\r\n =C2=A9 2015 Google Inc.
485
- 1600 Amphitheatre Parkway, Mountain View, CA 94043\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
486
- text/html; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<!DOCTYPE
487
- html>\r\n<html><head><meta http-equiv=3D\"content-type\" content=3D\"text/html;charset=\r\n=3DUTF-8\"
488
- /><title>Three tips to get the most out of Gmail</title></head><b=\r\nody
489
- style=3D\"background-color:#e5e5e5; margin:20px 0;\"><br /><div style=3D\"=\r\nmargin:2%;\"><div
490
- style=3D\"direction:ltr; text-align:left; font-family:'Open=\r\n sans','Arial',sans-serif;
491
- color:#444; background-color:white; padding:1.5e=\r\nm; border-radius:1em;
492
- box-shadow:1px -5px 8px 2px #bbb; max-width:580px; ma=\r\nrgin:2% auto 0
493
- auto;\"><table style=3D\"background:white;width:100%\"><tr><td>=\r\n<div
494
- 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\"
495
- alt=\r\n=3D\"Google\" width=3D\"90\" height=3D\"34\"/></div><div style=3D\"width:90%;
496
- 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\"
497
- style=3D\"display:=\r\nblock; float:left; margin-top:4px; margin-right:5px;\"/><span
498
- style=3D\"font-=\r\nfamily:'Open sans','Arial',sans-serif; font-weight:bold;
499
- font-size:small; l=\r\nine-height:1.4em\">Hi John</span></p><p><span style=3D\"font-family:'Open
500
- san=\r\ns','Arial',sans-serif; font-size:2.08em;\">Tips to get the most
501
- out of Gmail=\r\n</span><br/></p></div><p></p><div style=3D\"float:left;
502
- clear:both; padding:=\r\n0px 5px 10px 10px;\"><img src=3D\"https://services.google.com/fh/files/emails=\r\n/importcontacts.png\"
503
- alt=3D\"Contacts\" style=3D\"display:block;\"width=3D\"129\"=\r\nheight=3D\"129\"/></div><div
504
- style=3D\"float:left; vertical-align:middle; padd=\r\ning:10px; max-width:398px;
505
- float:left;\"><table style=3D\"vertical-align:midd=\r\nle;\"><tr><td style=3D\"font-family:'Open
506
- sans','Arial',sans-serif;\"><span st=\r\nyle=3D\"font-size:20px;\">Bring
507
- your contacts and mail into Gmail</span><br/>=\r\n<br/><span style=3D\"font-size:small;
508
- line-height:1.4em\">On your computer, y=\r\nou can copy your contacts and
509
- emails from your old email account to make th=\r\ne transition to Gmail
510
- even better. <a href=3D\"https://support.google.com/ma=\r\nil/answer/164640?hl=3Den&amp;ref_topic=3D1669014\"
511
- style=3D\"text-decoration:=\r\nnone; color:#15C\">Learn how</a>.</span></td></tr></table></div><div
512
- style=\r\n=3D\"float:left; clear:both; padding:0px 5px 10px 10px;\"><img
513
- src=3D\"https:/=\r\n/ssl.gstatic.com/mail/welcome/localized/en/welcome_search.png\"
514
- alt=3D\"Searc=\r\nh\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
515
- style=3D=\r\n\"float:left; vertical-align:middle; padding:10px; max-width:398px;
516
- float:le=\r\nft;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-family:'=\r\nOpen
517
- sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Find what
518
- y=\r\nou need fast</span><br/><br/><span style=3D\"font-size:small; line-height:1.=\r\n4em\">With
519
- the power of Google Search right in your inbox, it's easy to sort=\r\n your
520
- email. Find what you're looking for with predictions based on email c=\r\nontent,
521
- past searches and contacts.</span></td></tr></table></div><div styl=\r\ne=3D\"float:left;
522
- clear:both; padding:0px 5px 10px 10px;\"><img src=3D\"https:=\r\n//ssl.gstatic.com/accounts/services/mail/msa/welcome_hangouts.png\"
523
- alt=3D\"S=\r\nearch\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
524
- styl=\r\ne=3D\"float:left; vertical-align:middle; padding:10px; max-width:398px;
525
- floa=\r\nt:left;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-fami=\r\nly:'Open
526
- sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Much mo=\r\nre
527
- than email</span><br/><br/><span style=3D\"font-size:small; line-height:1=\r\n.4em\">You
528
- can send text messages and make video calls with <a href=3D\"https=\r\n://www.google.com/intl/en/hangouts/\"
529
- style=3D\"text-decoration:none; color:#=\r\n15C\">Hangouts</a> right from
530
- Gmail. To use this feature on mobile, download=\r\n the Hangouts app for
531
- <a href=3D\"https://play.google.com/store/apps/details=\r\n?id=3Dcom.google.android.talk&amp;hl=3Den\"
532
- 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\"
533
- style=3D\"text-decoration:none; color:#15C\">Apple</a=\r\n> devices.</span></td></tr></table></div><br/><br/>\r\n<div
534
- style=3D\"clear:both; padding-left:13px; height:6.8em;\"><table style=3D=\r\n\"width:100%;
535
- border-collapse:collapse; border:0\"><tr><td style=3D\"width:68p=\r\nx\"><img
536
- 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\"
537
- style=3D\"display=\r\n:block;\"/></td><td style=3D\"align:left; font-family:'Open
538
- sans','Arial',san=\r\ns-serif; vertical-align:bottom\"><span style=3D\"font-size:small\">Happy
539
- email=\r\ning,<br/></span><span style=3D\"font-size:x-large; line-height:1\">The
540
- Gmail =\r\nTeam</span></td></tr></table></div>\r\n</td></tr></table></div>\r\n<div
541
- style=3D\"direction:ltr;color:#777; font-size:0.8em; border-radius:1em;=\r\n
542
- padding:1em; margin:0 auto 4% auto; font-family:'Arial','Helvetica',sans-s=\r\nerif;
543
- text-align:center;\">=C2=A9 2015 Google Inc. 1600 Amphitheatre Parkway=\r\n,
544
- Mountain View, CA 94043<br/></div></div></body></html>\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a--"
545
- UID SEARCH-543c4aa0876fcec438e0bdc20193d4bb:
546
- - - :return
547
- - !ruby/struct:Net::IMAP::TaggedResponse
548
- tag: RUBY0007
549
- name: OK
550
- data: !ruby/struct:Net::IMAP::ResponseText
551
- code:
552
- text: SEARCH completed (Success)
553
- raw_data: "RUBY0007 OK SEARCH completed (Success)\r\n"
554
- - FLAGS: *20
555
- OK: *21
556
- PERMANENTFLAGS: *22
557
- UIDVALIDITY: *23
558
- EXISTS: *24
559
- RECENT: *25
560
- UIDNEXT: *26
561
- HIGHESTMODSEQ: *27
562
- SEARCH:
563
- - - 1
564
- - 2
565
- - 3
566
- LOGOUT-e76a09b7766d60a37ff9e1af527a143e:
567
- - - :return
568
- - !ruby/struct:Net::IMAP::TaggedResponse
569
- tag: RUBY0008
570
- name: OK
571
- data: !ruby/struct:Net::IMAP::ResponseText
572
- code:
573
- text: 73 good day (Success)
574
- raw_data: "RUBY0008 OK 73 good day (Success)\r\n"
575
- - FLAGS: *20
576
- OK: *21
577
- PERMANENTFLAGS: *22
578
- UIDVALIDITY: *23
579
- EXISTS: *24
580
- RECENT: *25
581
- UIDNEXT: *26
582
- HIGHESTMODSEQ: *27
583
- BYE:
584
- - !ruby/struct:Net::IMAP::ResponseText
585
- code:
586
- text: LOGOUT Requested
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: &2 !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
+ - &1
14
+ - IMAP4REV1
15
+ - UNSELECT
16
+ - IDLE
17
+ - NAMESPACE
18
+ - QUOTA
19
+ - ID
20
+ - XLIST
21
+ - CHILDREN
22
+ - X-GM-EXT-1
23
+ - UIDPLUS
24
+ - COMPRESS=DEFLATE
25
+ - ENABLE
26
+ - MOVE
27
+ - CONDSTORE
28
+ - ESEARCH
29
+ - UTF8=ACCEPT
30
+ - LIST-EXTENDED
31
+ - LIST-STATUS
32
+ - - !ruby/struct:Net::IMAP::UntaggedResponse
33
+ name: CAPABILITY
34
+ data: *1
35
+ raw_data: "* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN
36
+ X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT
37
+ LIST-EXTENDED LIST-STATUS\r\n"
38
+ - !ruby/struct:Net::IMAP::TaggedResponse
39
+ tag: RUBY0001
40
+ name: OK
41
+ data: *2
42
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
43
+ (Success)\r\n"
44
+ SELECT-505f013d922af4caf157dc91d6b45a60:
45
+ - - :return
46
+ - !ruby/struct:Net::IMAP::TaggedResponse
47
+ tag: RUBY0002
48
+ name: OK
49
+ data: &9 !ruby/struct:Net::IMAP::ResponseText
50
+ code: !ruby/struct:Net::IMAP::ResponseCode
51
+ name: READ-WRITE
52
+ data:
53
+ text: " INBOX selected. (Success)"
54
+ raw_data: "RUBY0002 OK [READ-WRITE] INBOX selected. (Success)\r\n"
55
+ - FLAGS: &24
56
+ - &4
57
+ - :Answered
58
+ - :Flagged
59
+ - :Draft
60
+ - :Deleted
61
+ - :Seen
62
+ - "$NotPhishing"
63
+ - "$Phishing"
64
+ OK: &25
65
+ - &5 !ruby/struct:Net::IMAP::ResponseText
66
+ code: !ruby/struct:Net::IMAP::ResponseCode
67
+ name: PERMANENTFLAGS
68
+ data: &3
69
+ - :Answered
70
+ - :Flagged
71
+ - :Draft
72
+ - :Deleted
73
+ - :Seen
74
+ - "$NotPhishing"
75
+ - "$Phishing"
76
+ - :*
77
+ text: " Flags permitted."
78
+ - &6 !ruby/struct:Net::IMAP::ResponseText
79
+ code: !ruby/struct:Net::IMAP::ResponseCode
80
+ name: UIDVALIDITY
81
+ data: 1
82
+ text: " UIDs valid."
83
+ - &7 !ruby/struct:Net::IMAP::ResponseText
84
+ code: !ruby/struct:Net::IMAP::ResponseCode
85
+ name: UIDNEXT
86
+ data: 397
87
+ text: " Predicted next UID."
88
+ - &8 !ruby/struct:Net::IMAP::ResponseText
89
+ code: !ruby/struct:Net::IMAP::ResponseCode
90
+ name: HIGHESTMODSEQ
91
+ data: '24238'
92
+ text: ''
93
+ PERMANENTFLAGS: &26
94
+ - *3
95
+ UIDVALIDITY: &27
96
+ - 1
97
+ EXISTS: &28
98
+ - 384
99
+ RECENT: &29
100
+ - 0
101
+ UIDNEXT: &30
102
+ - 397
103
+ HIGHESTMODSEQ: &31
104
+ - '24238'
105
+ - - !ruby/struct:Net::IMAP::UntaggedResponse
106
+ name: FLAGS
107
+ data: *4
108
+ raw_data: "* FLAGS (\\Answered \\Flagged \\Draft \\Deleted \\Seen $NotPhishing
109
+ $Phishing)\r\n"
110
+ - !ruby/struct:Net::IMAP::UntaggedResponse
111
+ name: OK
112
+ data: *5
113
+ raw_data: "* OK [PERMANENTFLAGS (\\Answered \\Flagged \\Draft \\Deleted \\Seen
114
+ $NotPhishing $Phishing \\*)] Flags permitted.\r\n"
115
+ - !ruby/struct:Net::IMAP::UntaggedResponse
116
+ name: OK
117
+ data: *6
118
+ raw_data: "* OK [UIDVALIDITY 1] UIDs valid.\r\n"
119
+ - !ruby/struct:Net::IMAP::UntaggedResponse
120
+ name: EXISTS
121
+ data: 384
122
+ raw_data: "* 384 EXISTS\r\n"
123
+ - !ruby/struct:Net::IMAP::UntaggedResponse
124
+ name: RECENT
125
+ data: 0
126
+ raw_data: "* 0 RECENT\r\n"
127
+ - !ruby/struct:Net::IMAP::UntaggedResponse
128
+ name: OK
129
+ data: *7
130
+ raw_data: "* OK [UIDNEXT 397] Predicted next UID.\r\n"
131
+ - !ruby/struct:Net::IMAP::UntaggedResponse
132
+ name: OK
133
+ data: *8
134
+ raw_data: "* OK [HIGHESTMODSEQ 24238]\r\n"
135
+ - !ruby/struct:Net::IMAP::TaggedResponse
136
+ tag: RUBY0002
137
+ name: OK
138
+ data: *9
139
+ raw_data: "RUBY0002 OK [READ-WRITE] INBOX selected. (Success)\r\n"
140
+ - - :return
141
+ - !ruby/struct:Net::IMAP::TaggedResponse
142
+ tag: RUBY0004
143
+ name: OK
144
+ data: &16 !ruby/struct:Net::IMAP::ResponseText
145
+ code: !ruby/struct:Net::IMAP::ResponseCode
146
+ name: READ-WRITE
147
+ data:
148
+ text: " INBOX selected. (Success)"
149
+ raw_data: "RUBY0004 OK [READ-WRITE] INBOX selected. (Success)\r\n"
150
+ - FLAGS: &34
151
+ - &11
152
+ - :Answered
153
+ - :Flagged
154
+ - :Draft
155
+ - :Deleted
156
+ - :Seen
157
+ - "$NotPhishing"
158
+ - "$Phishing"
159
+ OK: &35
160
+ - &12 !ruby/struct:Net::IMAP::ResponseText
161
+ code: !ruby/struct:Net::IMAP::ResponseCode
162
+ name: PERMANENTFLAGS
163
+ data: &10
164
+ - :Answered
165
+ - :Flagged
166
+ - :Draft
167
+ - :Deleted
168
+ - :Seen
169
+ - "$NotPhishing"
170
+ - "$Phishing"
171
+ - :*
172
+ text: " Flags permitted."
173
+ - &13 !ruby/struct:Net::IMAP::ResponseText
174
+ code: !ruby/struct:Net::IMAP::ResponseCode
175
+ name: UIDVALIDITY
176
+ data: 1
177
+ text: " UIDs valid."
178
+ - &14 !ruby/struct:Net::IMAP::ResponseText
179
+ code: !ruby/struct:Net::IMAP::ResponseCode
180
+ name: UIDNEXT
181
+ data: 397
182
+ text: " Predicted next UID."
183
+ - &15 !ruby/struct:Net::IMAP::ResponseText
184
+ code: !ruby/struct:Net::IMAP::ResponseCode
185
+ name: HIGHESTMODSEQ
186
+ data: '24238'
187
+ text: ''
188
+ PERMANENTFLAGS: &36
189
+ - *10
190
+ UIDVALIDITY: &37
191
+ - 1
192
+ EXISTS: &38
193
+ - 384
194
+ RECENT: &39
195
+ - 0
196
+ UIDNEXT: &40
197
+ - 397
198
+ HIGHESTMODSEQ: &41
199
+ - '24238'
200
+ - - !ruby/struct:Net::IMAP::UntaggedResponse
201
+ name: FLAGS
202
+ data: *11
203
+ raw_data: "* FLAGS (\\Answered \\Flagged \\Draft \\Deleted \\Seen $NotPhishing
204
+ $Phishing)\r\n"
205
+ - !ruby/struct:Net::IMAP::UntaggedResponse
206
+ name: OK
207
+ data: *12
208
+ raw_data: "* OK [PERMANENTFLAGS (\\Answered \\Flagged \\Draft \\Deleted \\Seen
209
+ $NotPhishing $Phishing \\*)] Flags permitted.\r\n"
210
+ - !ruby/struct:Net::IMAP::UntaggedResponse
211
+ name: OK
212
+ data: *13
213
+ raw_data: "* OK [UIDVALIDITY 1] UIDs valid.\r\n"
214
+ - !ruby/struct:Net::IMAP::UntaggedResponse
215
+ name: EXISTS
216
+ data: 384
217
+ raw_data: "* 384 EXISTS\r\n"
218
+ - !ruby/struct:Net::IMAP::UntaggedResponse
219
+ name: RECENT
220
+ data: 0
221
+ raw_data: "* 0 RECENT\r\n"
222
+ - !ruby/struct:Net::IMAP::UntaggedResponse
223
+ name: OK
224
+ data: *14
225
+ raw_data: "* OK [UIDNEXT 397] Predicted next UID.\r\n"
226
+ - !ruby/struct:Net::IMAP::UntaggedResponse
227
+ name: OK
228
+ data: *15
229
+ raw_data: "* OK [HIGHESTMODSEQ 24238]\r\n"
230
+ - !ruby/struct:Net::IMAP::TaggedResponse
231
+ tag: RUBY0004
232
+ name: OK
233
+ data: *16
234
+ raw_data: "RUBY0004 OK [READ-WRITE] INBOX selected. (Success)\r\n"
235
+ - - :return
236
+ - !ruby/struct:Net::IMAP::TaggedResponse
237
+ tag: RUBY0006
238
+ name: OK
239
+ data: &23 !ruby/struct:Net::IMAP::ResponseText
240
+ code: !ruby/struct:Net::IMAP::ResponseCode
241
+ name: READ-WRITE
242
+ data:
243
+ text: " INBOX selected. (Success)"
244
+ raw_data: "RUBY0006 OK [READ-WRITE] INBOX selected. (Success)\r\n"
245
+ - FLAGS: &44
246
+ - &18
247
+ - :Answered
248
+ - :Flagged
249
+ - :Draft
250
+ - :Deleted
251
+ - :Seen
252
+ - "$NotPhishing"
253
+ - "$Phishing"
254
+ OK: &45
255
+ - &19 !ruby/struct:Net::IMAP::ResponseText
256
+ code: !ruby/struct:Net::IMAP::ResponseCode
257
+ name: PERMANENTFLAGS
258
+ data: &17
259
+ - :Answered
260
+ - :Flagged
261
+ - :Draft
262
+ - :Deleted
263
+ - :Seen
264
+ - "$NotPhishing"
265
+ - "$Phishing"
266
+ - :*
267
+ text: " Flags permitted."
268
+ - &20 !ruby/struct:Net::IMAP::ResponseText
269
+ code: !ruby/struct:Net::IMAP::ResponseCode
270
+ name: UIDVALIDITY
271
+ data: 1
272
+ text: " UIDs valid."
273
+ - &21 !ruby/struct:Net::IMAP::ResponseText
274
+ code: !ruby/struct:Net::IMAP::ResponseCode
275
+ name: UIDNEXT
276
+ data: 397
277
+ text: " Predicted next UID."
278
+ - &22 !ruby/struct:Net::IMAP::ResponseText
279
+ code: !ruby/struct:Net::IMAP::ResponseCode
280
+ name: HIGHESTMODSEQ
281
+ data: '24238'
282
+ text: ''
283
+ PERMANENTFLAGS: &46
284
+ - *17
285
+ UIDVALIDITY: &47
286
+ - 1
287
+ EXISTS: &48
288
+ - 384
289
+ RECENT: &49
290
+ - 0
291
+ UIDNEXT: &50
292
+ - 397
293
+ HIGHESTMODSEQ: &51
294
+ - '24238'
295
+ - - !ruby/struct:Net::IMAP::UntaggedResponse
296
+ name: FLAGS
297
+ data: *18
298
+ raw_data: "* FLAGS (\\Answered \\Flagged \\Draft \\Deleted \\Seen $NotPhishing
299
+ $Phishing)\r\n"
300
+ - !ruby/struct:Net::IMAP::UntaggedResponse
301
+ name: OK
302
+ data: *19
303
+ raw_data: "* OK [PERMANENTFLAGS (\\Answered \\Flagged \\Draft \\Deleted \\Seen
304
+ $NotPhishing $Phishing \\*)] Flags permitted.\r\n"
305
+ - !ruby/struct:Net::IMAP::UntaggedResponse
306
+ name: OK
307
+ data: *20
308
+ raw_data: "* OK [UIDVALIDITY 1] UIDs valid.\r\n"
309
+ - !ruby/struct:Net::IMAP::UntaggedResponse
310
+ name: EXISTS
311
+ data: 384
312
+ raw_data: "* 384 EXISTS\r\n"
313
+ - !ruby/struct:Net::IMAP::UntaggedResponse
314
+ name: RECENT
315
+ data: 0
316
+ raw_data: "* 0 RECENT\r\n"
317
+ - !ruby/struct:Net::IMAP::UntaggedResponse
318
+ name: OK
319
+ data: *21
320
+ raw_data: "* OK [UIDNEXT 397] Predicted next UID.\r\n"
321
+ - !ruby/struct:Net::IMAP::UntaggedResponse
322
+ name: OK
323
+ data: *22
324
+ raw_data: "* OK [HIGHESTMODSEQ 24238]\r\n"
325
+ - !ruby/struct:Net::IMAP::TaggedResponse
326
+ tag: RUBY0006
327
+ name: OK
328
+ data: *23
329
+ raw_data: "RUBY0006 OK [READ-WRITE] INBOX selected. (Success)\r\n"
330
+ UID SEARCH-b19658413e2b63d2bac9c290a67c2cb3:
331
+ - - :return
332
+ - !ruby/struct:Net::IMAP::TaggedResponse
333
+ tag: RUBY0003
334
+ name: OK
335
+ data: &33 !ruby/struct:Net::IMAP::ResponseText
336
+ code:
337
+ text: SEARCH completed (Success)
338
+ raw_data: "RUBY0003 OK SEARCH completed (Success)\r\n"
339
+ - FLAGS: *24
340
+ OK: *25
341
+ PERMANENTFLAGS: *26
342
+ UIDVALIDITY: *27
343
+ EXISTS: *28
344
+ RECENT: *29
345
+ UIDNEXT: *30
346
+ HIGHESTMODSEQ: *31
347
+ SEARCH:
348
+ - &32
349
+ - 1
350
+ - 2
351
+ - 3
352
+ - 4
353
+ - 5
354
+ - 6
355
+ - 7
356
+ - 8
357
+ - 9
358
+ - 10
359
+ - 11
360
+ - 12
361
+ - 13
362
+ - 14
363
+ - 15
364
+ - 16
365
+ - 17
366
+ - 18
367
+ - 19
368
+ - 20
369
+ - 21
370
+ - 22
371
+ - 23
372
+ - 24
373
+ - 25
374
+ - 26
375
+ - 27
376
+ - 28
377
+ - 29
378
+ - 30
379
+ - 31
380
+ - 32
381
+ - 33
382
+ - 34
383
+ - 35
384
+ - 36
385
+ - 37
386
+ - 38
387
+ - 39
388
+ - 40
389
+ - 41
390
+ - 42
391
+ - 43
392
+ - 44
393
+ - 45
394
+ - 46
395
+ - 47
396
+ - 48
397
+ - 49
398
+ - 50
399
+ - 51
400
+ - 52
401
+ - 53
402
+ - 54
403
+ - 55
404
+ - 56
405
+ - 57
406
+ - 58
407
+ - 59
408
+ - 60
409
+ - 61
410
+ - 62
411
+ - 63
412
+ - 64
413
+ - 65
414
+ - 66
415
+ - 67
416
+ - 68
417
+ - 69
418
+ - 70
419
+ - 71
420
+ - 72
421
+ - 73
422
+ - 74
423
+ - 75
424
+ - 76
425
+ - 77
426
+ - 78
427
+ - 79
428
+ - 80
429
+ - 81
430
+ - 82
431
+ - 83
432
+ - 84
433
+ - 85
434
+ - 86
435
+ - 87
436
+ - 88
437
+ - 89
438
+ - 90
439
+ - 91
440
+ - 92
441
+ - 93
442
+ - 94
443
+ - 95
444
+ - 96
445
+ - 97
446
+ - 98
447
+ - 99
448
+ - 100
449
+ - 101
450
+ - 102
451
+ - 103
452
+ - 104
453
+ - 105
454
+ - 106
455
+ - 107
456
+ - 108
457
+ - 109
458
+ - 110
459
+ - 111
460
+ - 112
461
+ - 113
462
+ - 114
463
+ - 115
464
+ - 116
465
+ - 117
466
+ - 118
467
+ - 119
468
+ - 120
469
+ - 121
470
+ - 122
471
+ - 123
472
+ - 124
473
+ - 125
474
+ - 126
475
+ - 127
476
+ - 128
477
+ - 129
478
+ - 130
479
+ - 131
480
+ - 132
481
+ - 133
482
+ - 134
483
+ - 135
484
+ - 136
485
+ - 137
486
+ - 138
487
+ - 139
488
+ - 140
489
+ - 141
490
+ - 142
491
+ - 143
492
+ - 144
493
+ - 145
494
+ - 150
495
+ - 151
496
+ - 156
497
+ - 157
498
+ - 158
499
+ - 159
500
+ - 160
501
+ - 161
502
+ - 162
503
+ - 163
504
+ - 164
505
+ - 165
506
+ - 166
507
+ - 167
508
+ - 168
509
+ - 169
510
+ - 170
511
+ - 171
512
+ - 172
513
+ - 173
514
+ - 174
515
+ - 175
516
+ - 176
517
+ - 177
518
+ - 178
519
+ - 179
520
+ - 180
521
+ - 181
522
+ - 182
523
+ - 183
524
+ - 184
525
+ - 185
526
+ - 186
527
+ - 187
528
+ - 189
529
+ - 190
530
+ - 191
531
+ - 192
532
+ - 193
533
+ - 194
534
+ - 195
535
+ - 196
536
+ - 197
537
+ - 198
538
+ - 199
539
+ - 200
540
+ - 201
541
+ - 202
542
+ - 203
543
+ - 204
544
+ - 205
545
+ - 206
546
+ - 207
547
+ - 208
548
+ - 209
549
+ - 210
550
+ - 211
551
+ - 212
552
+ - 213
553
+ - 214
554
+ - 215
555
+ - 216
556
+ - 217
557
+ - 218
558
+ - 219
559
+ - 220
560
+ - 221
561
+ - 222
562
+ - 223
563
+ - 224
564
+ - 225
565
+ - 226
566
+ - 227
567
+ - 228
568
+ - 229
569
+ - 230
570
+ - 231
571
+ - 232
572
+ - 233
573
+ - 234
574
+ - 235
575
+ - 236
576
+ - 237
577
+ - 238
578
+ - 239
579
+ - 240
580
+ - 241
581
+ - 242
582
+ - 243
583
+ - 244
584
+ - 245
585
+ - 247
586
+ - 248
587
+ - 249
588
+ - 250
589
+ - 251
590
+ - 252
591
+ - 253
592
+ - 254
593
+ - 255
594
+ - 256
595
+ - 257
596
+ - 258
597
+ - 259
598
+ - 260
599
+ - 261
600
+ - 262
601
+ - 263
602
+ - 264
603
+ - 265
604
+ - 266
605
+ - 267
606
+ - 268
607
+ - 269
608
+ - 270
609
+ - 271
610
+ - 272
611
+ - 273
612
+ - 274
613
+ - 275
614
+ - 276
615
+ - 277
616
+ - 278
617
+ - 279
618
+ - 280
619
+ - 281
620
+ - 282
621
+ - 283
622
+ - 284
623
+ - 285
624
+ - 286
625
+ - 287
626
+ - 288
627
+ - 289
628
+ - 290
629
+ - 291
630
+ - 292
631
+ - 293
632
+ - 294
633
+ - 295
634
+ - 296
635
+ - 297
636
+ - 298
637
+ - 299
638
+ - 300
639
+ - 301
640
+ - 302
641
+ - 303
642
+ - 304
643
+ - 305
644
+ - 306
645
+ - 307
646
+ - 308
647
+ - 309
648
+ - 310
649
+ - 311
650
+ - 312
651
+ - 313
652
+ - 314
653
+ - 315
654
+ - 316
655
+ - 317
656
+ - 318
657
+ - 319
658
+ - 320
659
+ - 321
660
+ - 322
661
+ - 323
662
+ - 324
663
+ - 325
664
+ - 326
665
+ - 327
666
+ - 328
667
+ - 329
668
+ - 330
669
+ - 331
670
+ - 332
671
+ - 333
672
+ - 334
673
+ - 335
674
+ - 336
675
+ - 337
676
+ - 338
677
+ - 339
678
+ - 340
679
+ - 341
680
+ - 342
681
+ - 343
682
+ - 344
683
+ - 345
684
+ - 346
685
+ - 347
686
+ - 348
687
+ - 349
688
+ - 350
689
+ - 351
690
+ - 352
691
+ - 353
692
+ - 354
693
+ - 355
694
+ - 356
695
+ - 357
696
+ - 358
697
+ - 359
698
+ - 360
699
+ - 361
700
+ - 362
701
+ - 363
702
+ - 364
703
+ - 365
704
+ - 366
705
+ - 367
706
+ - 368
707
+ - 369
708
+ - 370
709
+ - 371
710
+ - 372
711
+ - 373
712
+ - 374
713
+ - 375
714
+ - 376
715
+ - 377
716
+ - 378
717
+ - 379
718
+ - 380
719
+ - 381
720
+ - 382
721
+ - 383
722
+ - 384
723
+ - 385
724
+ - 386
725
+ - 388
726
+ - 390
727
+ - 391
728
+ - 392
729
+ - 393
730
+ - 394
731
+ - 395
732
+ - 396
733
+ - - !ruby/struct:Net::IMAP::UntaggedResponse
734
+ name: SEARCH
735
+ data: *32
736
+ raw_data: "* SEARCH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
737
+ 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
738
+ 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
739
+ 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
740
+ 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
741
+ 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
742
+ 136 137 138 139 140 141 142 143 144 145 150 151 156 157 158 159 160 161 162
743
+ 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
744
+ 182 183 184 185 186 187 189 190 191 192 193 194 195 196 197 198 199 200 201
745
+ 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
746
+ 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
747
+ 240 241 242 243 244 245 247 248 249 250 251 252 253 254 255 256 257 258 259
748
+ 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278
749
+ 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297
750
+ 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316
751
+ 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335
752
+ 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354
753
+ 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373
754
+ 374 375 376 377 378 379 380 381 382 383 384 385 386 388 390 391 392 393 394
755
+ 395 396\r\n"
756
+ - !ruby/struct:Net::IMAP::TaggedResponse
757
+ tag: RUBY0003
758
+ name: OK
759
+ data: *33
760
+ raw_data: "RUBY0003 OK SEARCH completed (Success)\r\n"
761
+ UID FETCH-70e92ae4507a5481cf98aac122edceb8:
762
+ - - :return
763
+ - !ruby/struct:Net::IMAP::TaggedResponse
764
+ tag: RUBY0005
765
+ name: OK
766
+ data: &43 !ruby/struct:Net::IMAP::ResponseText
767
+ code:
768
+ text: Success
769
+ raw_data: "RUBY0005 OK Success\r\n"
770
+ - FLAGS: *34
771
+ OK: *35
772
+ PERMANENTFLAGS: *36
773
+ UIDVALIDITY: *37
774
+ EXISTS: *38
775
+ RECENT: *39
776
+ UIDNEXT: *40
777
+ HIGHESTMODSEQ: *41
778
+ FETCH:
779
+ - &42 !ruby/struct:Net::IMAP::FetchData
780
+ seqno: 1
781
+ attr:
782
+ X-GM-THRID: 1490339162618061913
783
+ X-GM-MSGID: 1490339162618061913
784
+ X-GM-LABELS: []
785
+ UID: 1
786
+ FLAGS:
787
+ - :Seen
788
+ ENVELOPE: !ruby/struct:Net::IMAP::Envelope
789
+ date: Wed, 14 Jan 2015 21:03:01 -0800
790
+ subject: Three tips to get the most out of Gmail
791
+ from:
792
+ - !ruby/struct:Net::IMAP::Address
793
+ name: Gmail Team
794
+ route:
795
+ mailbox: mail-noreply
796
+ host: google.com
797
+ sender:
798
+ - !ruby/struct:Net::IMAP::Address
799
+ name: Gmail Team
800
+ route:
801
+ mailbox: mail-noreply
802
+ host: google.com
803
+ reply_to:
804
+ - !ruby/struct:Net::IMAP::Address
805
+ name: Gmail Team
806
+ route:
807
+ mailbox: mail-noreply
808
+ host: google.com
809
+ to:
810
+ - !ruby/struct:Net::IMAP::Address
811
+ name: John Doe
812
+ route:
813
+ mailbox: ki0zvkyi1yzgy7xu4f4dh46nqrcecm
814
+ host: gmail.com
815
+ cc:
816
+ bcc:
817
+ in_reply_to:
818
+ message_id: "<CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>"
819
+ BODY[]: "MIME-Version: 1.0\r\nx-no-auto-attachment: 1\r\nReceived: by 10.70.87.10;
820
+ Wed, 14 Jan 2015 21:03:01 -0800 (PST)\r\nDate: Wed, 14 Jan 2015 21:03:01
821
+ -0800\r\nMessage-ID: <CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>\r\nSubject:
822
+ Three tips to get the most out of Gmail\r\nFrom: Gmail Team <mail-noreply@google.com>\r\nTo:
823
+ John Doe <ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com>\r\nContent-Type: multipart/alternative;
824
+ boundary=bcaec51dcff73ca5e9050ca9c59a\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
825
+ text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n
826
+ Three tips to get the most out of Gmail\r\n[image: Google]\r\n\r\nHi John\r\n\r\nTips
827
+ to get the most out of Gmail\r\n\r\n[image: Contacts]\r\nBring your contacts
828
+ and mail into Gmail\r\n\r\nOn your computer, you can copy your contacts
829
+ and emails from your old email\r\naccount to make the transition to Gmail
830
+ even better. Learn how\r\n<https://support.google.com/mail/answer/164640?hl=3Den&ref_topic=3D1669014>=\r\n.\r\n[image:
831
+ Search]\r\nFind what you need fast\r\n\r\nWith the power of Google Search
832
+ right in your inbox, it's easy to sort your\r\nemail. Find what you're looking
833
+ for with predictions based on email\r\ncontent, past searches and contacts.\r\n[image:
834
+ Search]\r\nMuch more than email\r\n\r\nYou can send text messages and make
835
+ video calls with Hangouts\r\n<https://www.google.com/intl/en/hangouts/>
836
+ right from Gmail. To use this\r\nfeature on mobile, download the Hangouts
837
+ app for Android\r\n<https://play.google.com/store/apps/details?id=3Dcom.google.android.talk&hl=\r\n=3Den>\r\nand
838
+ Apple <https://itunes.apple.com/en/app/hangouts/id643496868?mt=3D8>\r\ndevices.\r\n\r\n\r\n[image:
839
+ Gmail icon]Happy emailing,\r\nThe Gmail Team\r\n =C2=A9 2015 Google Inc.
840
+ 1600 Amphitheatre Parkway, Mountain View, CA 94043\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
841
+ text/html; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<!DOCTYPE
842
+ html>\r\n<html><head><meta http-equiv=3D\"content-type\" content=3D\"text/html;charset=\r\n=3DUTF-8\"
843
+ /><title>Three tips to get the most out of Gmail</title></head><b=\r\nody
844
+ style=3D\"background-color:#e5e5e5; margin:20px 0;\"><br /><div style=3D\"=\r\nmargin:2%;\"><div
845
+ style=3D\"direction:ltr; text-align:left; font-family:'Open=\r\n sans','Arial',sans-serif;
846
+ color:#444; background-color:white; padding:1.5e=\r\nm; border-radius:1em;
847
+ box-shadow:1px -5px 8px 2px #bbb; max-width:580px; ma=\r\nrgin:2% auto 0
848
+ auto;\"><table style=3D\"background:white;width:100%\"><tr><td>=\r\n<div
849
+ 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\"
850
+ alt=\r\n=3D\"Google\" width=3D\"90\" height=3D\"34\"/></div><div style=3D\"width:90%;
851
+ 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\"
852
+ style=3D\"display:=\r\nblock; float:left; margin-top:4px; margin-right:5px;\"/><span
853
+ style=3D\"font-=\r\nfamily:'Open sans','Arial',sans-serif; font-weight:bold;
854
+ font-size:small; l=\r\nine-height:1.4em\">Hi John</span></p><p><span style=3D\"font-family:'Open
855
+ san=\r\ns','Arial',sans-serif; font-size:2.08em;\">Tips to get the most
856
+ out of Gmail=\r\n</span><br/></p></div><p></p><div style=3D\"float:left;
857
+ clear:both; padding:=\r\n0px 5px 10px 10px;\"><img src=3D\"https://services.google.com/fh/files/emails=\r\n/importcontacts.png\"
858
+ alt=3D\"Contacts\" style=3D\"display:block;\"width=3D\"129\"=\r\nheight=3D\"129\"/></div><div
859
+ style=3D\"float:left; vertical-align:middle; padd=\r\ning:10px; max-width:398px;
860
+ float:left;\"><table style=3D\"vertical-align:midd=\r\nle;\"><tr><td style=3D\"font-family:'Open
861
+ sans','Arial',sans-serif;\"><span st=\r\nyle=3D\"font-size:20px;\">Bring
862
+ your contacts and mail into Gmail</span><br/>=\r\n<br/><span style=3D\"font-size:small;
863
+ line-height:1.4em\">On your computer, y=\r\nou can copy your contacts and
864
+ emails from your old email account to make th=\r\ne transition to Gmail
865
+ even better. <a href=3D\"https://support.google.com/ma=\r\nil/answer/164640?hl=3Den&amp;ref_topic=3D1669014\"
866
+ style=3D\"text-decoration:=\r\nnone; color:#15C\">Learn how</a>.</span></td></tr></table></div><div
867
+ style=\r\n=3D\"float:left; clear:both; padding:0px 5px 10px 10px;\"><img
868
+ src=3D\"https:/=\r\n/ssl.gstatic.com/mail/welcome/localized/en/welcome_search.png\"
869
+ alt=3D\"Searc=\r\nh\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
870
+ style=3D=\r\n\"float:left; vertical-align:middle; padding:10px; max-width:398px;
871
+ float:le=\r\nft;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-family:'=\r\nOpen
872
+ sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Find what
873
+ y=\r\nou need fast</span><br/><br/><span style=3D\"font-size:small; line-height:1.=\r\n4em\">With
874
+ the power of Google Search right in your inbox, it's easy to sort=\r\n your
875
+ email. Find what you're looking for with predictions based on email c=\r\nontent,
876
+ past searches and contacts.</span></td></tr></table></div><div styl=\r\ne=3D\"float:left;
877
+ clear:both; padding:0px 5px 10px 10px;\"><img src=3D\"https:=\r\n//ssl.gstatic.com/accounts/services/mail/msa/welcome_hangouts.png\"
878
+ alt=3D\"S=\r\nearch\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
879
+ styl=\r\ne=3D\"float:left; vertical-align:middle; padding:10px; max-width:398px;
880
+ floa=\r\nt:left;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-fami=\r\nly:'Open
881
+ sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Much mo=\r\nre
882
+ than email</span><br/><br/><span style=3D\"font-size:small; line-height:1=\r\n.4em\">You
883
+ can send text messages and make video calls with <a href=3D\"https=\r\n://www.google.com/intl/en/hangouts/\"
884
+ style=3D\"text-decoration:none; color:#=\r\n15C\">Hangouts</a> right from
885
+ Gmail. To use this feature on mobile, download=\r\n the Hangouts app for
886
+ <a href=3D\"https://play.google.com/store/apps/details=\r\n?id=3Dcom.google.android.talk&amp;hl=3Den\"
887
+ 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\"
888
+ style=3D\"text-decoration:none; color:#15C\">Apple</a=\r\n> devices.</span></td></tr></table></div><br/><br/>\r\n<div
889
+ style=3D\"clear:both; padding-left:13px; height:6.8em;\"><table style=3D=\r\n\"width:100%;
890
+ border-collapse:collapse; border:0\"><tr><td style=3D\"width:68p=\r\nx\"><img
891
+ 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\"
892
+ style=3D\"display=\r\n:block;\"/></td><td style=3D\"align:left; font-family:'Open
893
+ sans','Arial',san=\r\ns-serif; vertical-align:bottom\"><span style=3D\"font-size:small\">Happy
894
+ email=\r\ning,<br/></span><span style=3D\"font-size:x-large; line-height:1\">The
895
+ Gmail =\r\nTeam</span></td></tr></table></div>\r\n</td></tr></table></div>\r\n<div
896
+ style=3D\"direction:ltr;color:#777; font-size:0.8em; border-radius:1em;=\r\n
897
+ padding:1em; margin:0 auto 4% auto; font-family:'Arial','Helvetica',sans-s=\r\nerif;
898
+ text-align:center;\">=C2=A9 2015 Google Inc. 1600 Amphitheatre Parkway=\r\n,
899
+ Mountain View, CA 94043<br/></div></div></body></html>\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a--"
900
+ - - !ruby/struct:Net::IMAP::UntaggedResponse
901
+ name: FETCH
902
+ data: *42
903
+ raw_data: "* 1 FETCH (X-GM-THRID 1490339162618061913 X-GM-MSGID 1490339162618061913
904
+ X-GM-LABELS () UID 1 FLAGS (\\Seen) ENVELOPE (\"Wed, 14 Jan 2015 21:03:01
905
+ -0800\" \"Three tips to get the most out of Gmail\" ((\"Gmail Team\" NIL \"mail-noreply\"
906
+ \"google.com\")) ((\"Gmail Team\" NIL \"mail-noreply\" \"google.com\")) ((\"Gmail
907
+ Team\" NIL \"mail-noreply\" \"google.com\")) ((\"John Doe\" NIL \"ki0zvkyi1yzgy7xu4f4dh46nqrcecm\"
908
+ \"gmail.com\")) NIL NIL NIL \"<CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>\")
909
+ BODY[] {6915}\r\nMIME-Version: 1.0\r\nx-no-auto-attachment: 1\r\nReceived:
910
+ by 10.70.87.10; Wed, 14 Jan 2015 21:03:01 -0800 (PST)\r\nDate: Wed, 14 Jan
911
+ 2015 21:03:01 -0800\r\nMessage-ID: <CACNRAYKakHOCaxin=3D-9QAC=GRQgDae66vLpwqPQC6rDAJK2w@mail.gmail.com>\r\nSubject:
912
+ Three tips to get the most out of Gmail\r\nFrom: Gmail Team <mail-noreply@google.com>\r\nTo:
913
+ John Doe <ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com>\r\nContent-Type: multipart/alternative;
914
+ boundary=bcaec51dcff73ca5e9050ca9c59a\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
915
+ text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n
916
+ Three tips to get the most out of Gmail\r\n[image: Google]\r\n\r\nHi John\r\n\r\nTips
917
+ to get the most out of Gmail\r\n\r\n[image: Contacts]\r\nBring your contacts
918
+ and mail into Gmail\r\n\r\nOn your computer, you can copy your contacts and
919
+ emails from your old email\r\naccount to make the transition to Gmail even
920
+ better. Learn how\r\n<https://support.google.com/mail/answer/164640?hl=3Den&ref_topic=3D1669014>=\r\n.\r\n[image:
921
+ Search]\r\nFind what you need fast\r\n\r\nWith the power of Google Search
922
+ right in your inbox, it's easy to sort your\r\nemail. Find what you're looking
923
+ for with predictions based on email\r\ncontent, past searches and contacts.\r\n[image:
924
+ Search]\r\nMuch more than email\r\n\r\nYou can send text messages and make
925
+ video calls with Hangouts\r\n<https://www.google.com/intl/en/hangouts/> right
926
+ from Gmail. To use this\r\nfeature on mobile, download the Hangouts app for
927
+ Android\r\n<https://play.google.com/store/apps/details?id=3Dcom.google.android.talk&hl=\r\n=3Den>\r\nand
928
+ Apple <https://itunes.apple.com/en/app/hangouts/id643496868?mt=3D8>\r\ndevices.\r\n\r\n\r\n[image:
929
+ Gmail icon]Happy emailing,\r\nThe Gmail Team\r\n =C2=A9 2015 Google Inc. 1600
930
+ Amphitheatre Parkway, Mountain View, CA 94043\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a\r\nContent-Type:
931
+ text/html; charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<!DOCTYPE
932
+ html>\r\n<html><head><meta http-equiv=3D\"content-type\" content=3D\"text/html;charset=\r\n=3DUTF-8\"
933
+ /><title>Three tips to get the most out of Gmail</title></head><b=\r\nody
934
+ style=3D\"background-color:#e5e5e5; margin:20px 0;\"><br /><div style=3D\"=\r\nmargin:2%;\"><div
935
+ style=3D\"direction:ltr; text-align:left; font-family:'Open=\r\n sans','Arial',sans-serif;
936
+ color:#444; background-color:white; padding:1.5e=\r\nm; border-radius:1em;
937
+ box-shadow:1px -5px 8px 2px #bbb; max-width:580px; ma=\r\nrgin:2% auto 0 auto;\"><table
938
+ style=3D\"background:white;width:100%\"><tr><td>=\r\n<div style=3D\"width:90px;
939
+ height:54px; margin:10px auto;\"><img src=3D\"https=\r\n://services.google.com/fh/files/emails/google_logo_flat_90_color.png\"
940
+ alt=\r\n=3D\"Google\" width=3D\"90\" height=3D\"34\"/></div><div style=3D\"width:90%;
941
+ 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\"
942
+ style=3D\"display:=\r\nblock; float:left; margin-top:4px; margin-right:5px;\"/><span
943
+ style=3D\"font-=\r\nfamily:'Open sans','Arial',sans-serif; font-weight:bold;
944
+ font-size:small; l=\r\nine-height:1.4em\">Hi John</span></p><p><span style=3D\"font-family:'Open
945
+ san=\r\ns','Arial',sans-serif; font-size:2.08em;\">Tips to get the most out
946
+ of Gmail=\r\n</span><br/></p></div><p></p><div style=3D\"float:left; clear:both;
947
+ padding:=\r\n0px 5px 10px 10px;\"><img src=3D\"https://services.google.com/fh/files/emails=\r\n/importcontacts.png\"
948
+ alt=3D\"Contacts\" style=3D\"display:block;\"width=3D\"129\"=\r\nheight=3D\"129\"/></div><div
949
+ style=3D\"float:left; vertical-align:middle; padd=\r\ning:10px; max-width:398px;
950
+ float:left;\"><table style=3D\"vertical-align:midd=\r\nle;\"><tr><td style=3D\"font-family:'Open
951
+ sans','Arial',sans-serif;\"><span st=\r\nyle=3D\"font-size:20px;\">Bring your
952
+ contacts and mail into Gmail</span><br/>=\r\n<br/><span style=3D\"font-size:small;
953
+ line-height:1.4em\">On your computer, y=\r\nou can copy your contacts and
954
+ emails from your old email account to make th=\r\ne transition to Gmail even
955
+ better. <a href=3D\"https://support.google.com/ma=\r\nil/answer/164640?hl=3Den&amp;ref_topic=3D1669014\"
956
+ style=3D\"text-decoration:=\r\nnone; color:#15C\">Learn how</a>.</span></td></tr></table></div><div
957
+ style=\r\n=3D\"float:left; clear:both; padding:0px 5px 10px 10px;\"><img src=3D\"https:/=\r\n/ssl.gstatic.com/mail/welcome/localized/en/welcome_search.png\"
958
+ alt=3D\"Searc=\r\nh\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
959
+ style=3D=\r\n\"float:left; vertical-align:middle; padding:10px; max-width:398px;
960
+ float:le=\r\nft;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-family:'=\r\nOpen
961
+ sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Find what y=\r\nou
962
+ need fast</span><br/><br/><span style=3D\"font-size:small; line-height:1.=\r\n4em\">With
963
+ the power of Google Search right in your inbox, it's easy to sort=\r\n your
964
+ email. Find what you're looking for with predictions based on email c=\r\nontent,
965
+ past searches and contacts.</span></td></tr></table></div><div styl=\r\ne=3D\"float:left;
966
+ clear:both; padding:0px 5px 10px 10px;\"><img src=3D\"https:=\r\n//ssl.gstatic.com/accounts/services/mail/msa/welcome_hangouts.png\"
967
+ alt=3D\"S=\r\nearch\" style=3D\"display:block;\"width=3D\"129\"height=3D\"129\"/></div><div
968
+ styl=\r\ne=3D\"float:left; vertical-align:middle; padding:10px; max-width:398px;
969
+ floa=\r\nt:left;\"><table style=3D\"vertical-align:middle;\"><tr><td style=3D\"font-fami=\r\nly:'Open
970
+ sans','Arial',sans-serif;\"><span style=3D\"font-size:20px;\">Much mo=\r\nre
971
+ than email</span><br/><br/><span style=3D\"font-size:small; line-height:1=\r\n.4em\">You
972
+ can send text messages and make video calls with <a href=3D\"https=\r\n://www.google.com/intl/en/hangouts/\"
973
+ style=3D\"text-decoration:none; color:#=\r\n15C\">Hangouts</a> right from
974
+ Gmail. To use this feature on mobile, download=\r\n the Hangouts app for <a
975
+ href=3D\"https://play.google.com/store/apps/details=\r\n?id=3Dcom.google.android.talk&amp;hl=3Den\"
976
+ 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\"
977
+ style=3D\"text-decoration:none; color:#15C\">Apple</a=\r\n> devices.</span></td></tr></table></div><br/><br/>\r\n<div
978
+ style=3D\"clear:both; padding-left:13px; height:6.8em;\"><table style=3D=\r\n\"width:100%;
979
+ border-collapse:collapse; border:0\"><tr><td style=3D\"width:68p=\r\nx\"><img
980
+ 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\"
981
+ style=3D\"display=\r\n:block;\"/></td><td style=3D\"align:left; font-family:'Open
982
+ sans','Arial',san=\r\ns-serif; vertical-align:bottom\"><span style=3D\"font-size:small\">Happy
983
+ email=\r\ning,<br/></span><span style=3D\"font-size:x-large; line-height:1\">The
984
+ Gmail =\r\nTeam</span></td></tr></table></div>\r\n</td></tr></table></div>\r\n<div
985
+ style=3D\"direction:ltr;color:#777; font-size:0.8em; border-radius:1em;=\r\n
986
+ padding:1em; margin:0 auto 4% auto; font-family:'Arial','Helvetica',sans-s=\r\nerif;
987
+ text-align:center;\">=C2=A9 2015 Google Inc. 1600 Amphitheatre Parkway=\r\n,
988
+ Mountain View, CA 94043<br/></div></div></body></html>\r\n\r\n--bcaec51dcff73ca5e9050ca9c59a--)\r\n"
989
+ - !ruby/struct:Net::IMAP::TaggedResponse
990
+ tag: RUBY0005
991
+ name: OK
992
+ data: *43
993
+ raw_data: "RUBY0005 OK Success\r\n"
994
+ UID SEARCH-543c4aa0876fcec438e0bdc20193d4bb:
995
+ - - :return
996
+ - !ruby/struct:Net::IMAP::TaggedResponse
997
+ tag: RUBY0007
998
+ name: OK
999
+ data: &53 !ruby/struct:Net::IMAP::ResponseText
1000
+ code:
1001
+ text: SEARCH completed (Success)
1002
+ raw_data: "RUBY0007 OK SEARCH completed (Success)\r\n"
1003
+ - FLAGS: *44
1004
+ OK: *45
1005
+ PERMANENTFLAGS: *46
1006
+ UIDVALIDITY: *47
1007
+ EXISTS: *48
1008
+ RECENT: *49
1009
+ UIDNEXT: *50
1010
+ HIGHESTMODSEQ: *51
1011
+ SEARCH:
1012
+ - &52
1013
+ - 1
1014
+ - 2
1015
+ - 3
1016
+ - - !ruby/struct:Net::IMAP::UntaggedResponse
1017
+ name: SEARCH
1018
+ data: *52
1019
+ raw_data: "* SEARCH 1 2 3\r\n"
1020
+ - !ruby/struct:Net::IMAP::TaggedResponse
1021
+ tag: RUBY0007
1022
+ name: OK
1023
+ data: *53
1024
+ raw_data: "RUBY0007 OK SEARCH completed (Success)\r\n"
1025
+ LOGOUT-e76a09b7766d60a37ff9e1af527a143e:
1026
+ - - :return
1027
+ - !ruby/struct:Net::IMAP::TaggedResponse
1028
+ tag: RUBY0008
1029
+ name: OK
1030
+ data: !ruby/struct:Net::IMAP::ResponseText
1031
+ code:
1032
+ text: 73 good day (Success)
1033
+ raw_data: "RUBY0008 OK 73 good day (Success)\r\n"
1034
+ - FLAGS: *44
1035
+ OK: *45
1036
+ PERMANENTFLAGS: *46
1037
+ UIDVALIDITY: *47
1038
+ EXISTS: *48
1039
+ RECENT: *49
1040
+ UIDNEXT: *50
1041
+ HIGHESTMODSEQ: *51
1042
+ BYE:
1043
+ - &54 !ruby/struct:Net::IMAP::ResponseText
1044
+ code:
1045
+ text: LOGOUT Requested
1046
+ - - !ruby/struct:Net::IMAP::UntaggedResponse
1047
+ name: BYE
1048
+ data: *54
1049
+ raw_data: "* BYE LOGOUT Requested\r\n"