gmail 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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"