mail2cb 0.0.6 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/Dockerfile +37 -0
- data/README.md +13 -0
- data/Rakefile +11 -0
- data/bin/mail2cb +25 -6
- data/bin/run +36 -0
- data/lib/mail2cb/{email_body_parser.rb → email_body_cleanser.rb} +1 -1
- data/lib/mail2cb/email_content.rb +44 -0
- data/lib/mail2cb/email_handler.rb +89 -61
- data/lib/mail2cb/email_watcher.rb +78 -14
- data/lib/mail2cb/encryption.rb +44 -25
- data/lib/mail2cb/message_id_handler.rb +63 -0
- data/lib/mail2cb/version.rb +1 -1
- data/lib/mail2cb.rb +4 -1
- data/mail2cb.gemspec +10 -4
- data/samples/bare_bones.txt +5 -0
- data/samples/reply.txt +226 -0
- data/samples/reply_message_id_in_body.txt +416 -0
- data/samples/reply_with_cc.txt +455 -0
- data/spec/hash_key_matcher.rb +22 -0
- data/spec/helpers.rb +14 -0
- data/spec/mail2cb/email_content_spec.rb +27 -0
- data/spec/mail2cb/email_handler_spec.rb +190 -0
- data/spec/mail2cb/email_watcher_spec.rb +61 -0
- data/spec/mail2cb/encryption_spec.rb +47 -0
- data/spec/mail2cb/message_id_handler_spec.rb +35 -0
- data/spec/spec_helper.rb +15 -0
- metadata +109 -13
@@ -0,0 +1,455 @@
|
|
1
|
+
Delivered-To: stewart@activeinformationdesign.com
|
2
|
+
Received: by 10.112.147.106 with SMTP id tj10csp553002lbb;
|
3
|
+
Thu, 14 Apr 2016 04:40:06 -0700 (PDT)
|
4
|
+
X-Received: by 10.28.125.8 with SMTP id y8mr38081358wmc.87.1460634006043;
|
5
|
+
Thu, 14 Apr 2016 04:40:06 -0700 (PDT)
|
6
|
+
Return-Path: <stewart@emergeadapt.com>
|
7
|
+
Received: from mail-wm0-x22d.google.com (mail-wm0-x22d.google.com. [2a00:1450:400c:c09::22d])
|
8
|
+
by mx.google.com with ESMTPS id yr7si32785935wjc.142.2016.04.14.04.40.05
|
9
|
+
for <stewart@activeinformationdesign.com>
|
10
|
+
(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
|
11
|
+
Thu, 14 Apr 2016 04:40:05 -0700 (PDT)
|
12
|
+
Received-SPF: neutral (google.com: 2a00:1450:400c:c09::22d is neither permitted nor denied by domain of stewart@emergeadapt.com) client-ip=2a00:1450:400c:c09::22d;
|
13
|
+
Authentication-Results: mx.google.com;
|
14
|
+
dkim=pass header.i=@emergeadapt-com.20150623.gappssmtp.com;
|
15
|
+
spf=neutral (google.com: 2a00:1450:400c:c09::22d is neither permitted nor denied by domain of stewart@emergeadapt.com) smtp.mailfrom=stewart@emergeadapt.com
|
16
|
+
Received: by mail-wm0-x22d.google.com with SMTP id n3so121773832wmn.0
|
17
|
+
for <stewart@activeinformationdesign.com>; Thu, 14 Apr 2016 04:40:05 -0700 (PDT)
|
18
|
+
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
19
|
+
d=emergeadapt-com.20150623.gappssmtp.com; s=20150623;
|
20
|
+
h=date:from:to:cc:message-id:in-reply-to:references:subject
|
21
|
+
:mime-version;
|
22
|
+
bh=/NUqVaqmPbfe0oJ0tJvCkoJ1UKIesC+5giBETUO+G4g=;
|
23
|
+
b=x2XidVDOmwGyjSdkVbfmhr7k4gkhQbCm5CjOMtL7bZvdOhnE8lAgMBc2nbOlbj7OKX
|
24
|
+
vExRqJrWLuYwzBkRqbkpDUsj65DxTY6Lypgv08SE9z0cfnF3fmHL5GRCtJomRAc/K70b
|
25
|
+
LETV0U4j6eeNlmyfDjE7Hvd47wyWHVwCaDLYmd9Lsb8kAx1tlXqRQIuVqM6q/fEIp+x+
|
26
|
+
O6ymFjyBez65fhPRulRT7ggZ/wN/SUIKD88eE5BioRExBcBlidAeWm1ohVNGN3wjaxCL
|
27
|
+
gpH7J0mV0AzuG5MP8hO3Ij4KTqvIAveo8dNiSqfJoTIoaN+oC2Y/O6Q640ca4YDTIjMI
|
28
|
+
Y2pA==
|
29
|
+
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
30
|
+
d=1e100.net; s=20130820;
|
31
|
+
h=x-gm-message-state:date:from:to:cc:message-id:in-reply-to
|
32
|
+
:references:subject:mime-version;
|
33
|
+
bh=/NUqVaqmPbfe0oJ0tJvCkoJ1UKIesC+5giBETUO+G4g=;
|
34
|
+
b=H4lAbQ3OMDgVQ4uzHDnL5S+B0TsgzYrYgKgj6i1l+4YxA0JXJ52ydCk6XllVY/mVzy
|
35
|
+
+h4VoFGn8k/Egtoa0bYksDyIjITmAmBxV4qCmJf8vmyvPBpw5uMQgbWZeJXDja/lo0fY
|
36
|
+
UW1La9r5DnjJjHRxLP05jJZz5TXvfdTXXmgT13UffDtM43MjdtaXN0DfLxA5I2GqefOm
|
37
|
+
Te92dPuNJWdlmNEpdQu9buwpqE9Gh7A/nsjW+jG5WOR/c8YZy0DV8N9ai24fLKnpVaQh
|
38
|
+
3f3wkmzj9mxKTgdnCTTqdaVTE5ttSs6TkJBznQiNGpC61XsGBU6Ra5os7Amodus3hsLN
|
39
|
+
e15A==
|
40
|
+
X-Gm-Message-State: AOPr4FVhL08g49X6DfMB65Lylau2TbUjg5aiTrDS/Sh5VfgsucKKrGCko0ZZ0fIbPo3H6w==
|
41
|
+
X-Received: by 10.28.228.68 with SMTP id b65mr16021801wmh.47.1460634005777;
|
42
|
+
Thu, 14 Apr 2016 04:40:05 -0700 (PDT)
|
43
|
+
Return-Path: <stewart@emergeadapt.com>
|
44
|
+
Received: from Jordans-MacBook-Pro.local (host81-130-148-178.in-addr.btopenworld.com. [81.130.148.178])
|
45
|
+
by smtp.gmail.com with ESMTPSA id q77sm2582733wmd.12.2016.04.14.04.40.03
|
46
|
+
(version=TLSv1/SSLv3 cipher=OTHER);
|
47
|
+
Thu, 14 Apr 2016 04:40:04 -0700 (PDT)
|
48
|
+
Date: Thu, 14 Apr 2016 12:39:59 +0100
|
49
|
+
From: Stewart McKee <stewart@emergeadapt.com>
|
50
|
+
To: Stewart McKee <stewart@activeinformationdesign.com>,
|
51
|
+
stewart@wemigratestuff.com
|
52
|
+
Cc: Stewart McKee <stewart@theizone.co.uk>, stewart@dailyfarm.com
|
53
|
+
Message-ID: <etPan.570f818f.446f2651.137@emergeadapt.com>
|
54
|
+
In-Reply-To: <conversation.570f77bc81e9a825e2000001.570f7a1381e9a82659000001@mail.caseblocks.com>
|
55
|
+
References: <conversation.570f77bc81e9a825e2000001.570f7a1381e9a82659000001@mail.caseblocks.com>
|
56
|
+
Subject: Re: Test Conversation
|
57
|
+
X-Mailer: Airmail Beta (353)
|
58
|
+
MIME-Version: 1.0
|
59
|
+
Content-Type: multipart/alternative; boundary="570f818f_3fb48f67_137"
|
60
|
+
|
61
|
+
--570f818f_3fb48f67_137
|
62
|
+
Content-Type: text/plain; charset="utf-8"
|
63
|
+
Content-Transfer-Encoding: quoted-printable
|
64
|
+
Content-Disposition: inline
|
65
|
+
|
66
|
+
Test to multiple people
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
www.emergeadapt.com
|
71
|
+
|
72
|
+
Office: +44 141 632 8395
|
73
|
+
=C2=A0
|
74
|
+
=C2=A9 EmergeAdapt 2016
|
75
|
+
All Rights Reserved.
|
76
|
+
Registered in Scotland SC413041
|
77
|
+
|
78
|
+
On 14 April 2016 at 12:08:09, default=40emergeadapt.com (default=40emerge=
|
79
|
+
adapt.com) wrote:
|
80
|
+
|
81
|
+
Re: Test Conversation
|
82
|
+
=46rom: Stewart
|
83
|
+
|
84
|
+
Bulk Uplift: Bulk Uplift 36-002
|
85
|
+
|
86
|
+
=20
|
87
|
+
|
88
|
+
Test Reply 3
|
89
|
+
|
90
|
+
This message was sent at 14 Apr 11:08 GMT
|
91
|
+
|
92
|
+
Recipients Stewart
|
93
|
+
|
94
|
+
Click here to view the conversation history and the Bulk Uplift in detail=
|
95
|
+
.
|
96
|
+
|
97
|
+
|
98
|
+
--570f818f_3fb48f67_137
|
99
|
+
Content-Type: multipart/related; boundary="570f818f_2de5f9a8_137"
|
100
|
+
|
101
|
+
--570f818f_2de5f9a8_137
|
102
|
+
Content-Type: text/html; charset="utf-8"
|
103
|
+
Content-Transfer-Encoding: quoted-printable
|
104
|
+
Content-Disposition: inline
|
105
|
+
|
106
|
+
<html><head><style>body=7Bfont-family:Helvetica,Arial;font-size:13px=7D</=
|
107
|
+
style></head><body style=3D=22word-wrap: break-word; -webkit-nbsp-mode: s=
|
108
|
+
pace; -webkit-line-break: after-white-space;=22><div id=3D=22bloop=5Fcust=
|
109
|
+
omfont=22 style=3D=22font-family:Helvetica,Arial;font-size:13px; color: r=
|
110
|
+
gba(0,0,0,1.0); margin: 0px; line-height: auto;=22>Test to multiple peopl=
|
111
|
+
e</div> <br> <div id=3D=22bloop=5Fsign=5F1460633971005732096=22 class=3D=22=
|
112
|
+
bloop=5Fsign=22><div style=3D=22font-family:helvetica,arial;font-size:13p=
|
113
|
+
x=22><br></div><div style=3D=22font-family:helvetica,arial;font-size:13px=
|
114
|
+
=22><div style=3D=22font-family: Helvetica; line-height: normal;=22><img =
|
115
|
+
src=3D=22cid:3CBE7B35-=46DDA-47E7-B567-3AE269CA3800=22></div><div style=3D=
|
116
|
+
=22font-family: Helvetica; line-height: normal;=22>www.emergeadapt.com</d=
|
117
|
+
iv><div style=3D=22font-family: Helvetica; line-height: normal;=22><br></=
|
118
|
+
div><div style=3D=22font-family: Helvetica; line-height: normal;=22>Offic=
|
119
|
+
e: +44 141 632 8395</div><div style=3D=22font-family: Helvetica; line-hei=
|
120
|
+
ght: normal;=22> </div><div style=3D=22font-family: Helvetica; line-=
|
121
|
+
height: normal;=22>=C2=A9 EmergeAdapt 2016</div><div style=3D=22font-fami=
|
122
|
+
ly: Helvetica; line-height: normal;=22>All Rights Reserved.</div><div sty=
|
123
|
+
le=3D=22font-family: Helvetica; line-height: normal;=22>Registered in Sco=
|
124
|
+
tland SC413041</div></div></div> <br><p class=3D=22airmail=5Fon=22>On 14 =
|
125
|
+
April 2016 at 12:08:09, default=40emergeadapt.com (<a href=3D=22mailto:de=
|
126
|
+
fault=40emergeadapt.com=22>default=40emergeadapt.com</a>) wrote:</p> <blo=
|
127
|
+
ckquote type=3D=22cite=22 class=3D=22clean=5Fbq=22><span><div style=3D=22=
|
128
|
+
background-color: =23e1e1e1; font-family: Arial, Helvetica, sans-serif; f=
|
129
|
+
ont-size: 14px; color: =234f4f4f; margin: 10px 0;=22><div></div><div>
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
<table align=3D=22center=22 border=3D=220=22 cellpadding=3D=220=22 cellsp=
|
139
|
+
acing=3D=220=22 class=3D=22wrapper=5Ftable=22 style=3D=22width: 600px; bo=
|
140
|
+
x-shadow: 0 0 5px =23CCCCCC, 0 0 0 =23000000 inset;=22>
|
141
|
+
<tbody><tr>
|
142
|
+
<td bgcolor=3D=22=23C62C40=22 height=3D=226=22></td>
|
143
|
+
</tr>
|
144
|
+
<tr>
|
145
|
+
<td bgcolor=3D=22=23=466=466=466=22>
|
146
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
147
|
+
<tbody><tr>
|
148
|
+
<td class=3D=22padding=22 style=3D=22width: 20px;=22></td>
|
149
|
+
<td class=3D=22content=22 style=3D=22width: 560px;=22>
|
150
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
151
|
+
<tbody><tr>
|
152
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px;=22 height=3D=223=
|
153
|
+
0=22></td>
|
154
|
+
</tr>
|
155
|
+
<tr>
|
156
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px; text-align: left=
|
157
|
+
;=22>
|
158
|
+
<p class=3D=22blog=5Ftitle=22 style=3D=22font-family: sans-serif; font-si=
|
159
|
+
ze: 18px; color: =23272727; font-weight: 700; margin: 0; line-height: 18p=
|
160
|
+
x;=22>
|
161
|
+
Re: Test Conversation</p>
|
162
|
+
<p class=3D=22blog=5Fexcerpt=22 style=3D=22font-family: sans-serif; font-=
|
163
|
+
size: 13px;; color: =23272727; margin: 10px 0; line-height: 18px;=22>
|
164
|
+
=46rom: Stewart</p>
|
165
|
+
</td>
|
166
|
+
</tr>
|
167
|
+
</tbody></table>
|
168
|
+
</td>
|
169
|
+
<td class=3D=22padding=22 style=3D=22width: 20px;=22></td>
|
170
|
+
</tr>
|
171
|
+
</tbody></table>
|
172
|
+
</td>
|
173
|
+
</tr>
|
174
|
+
<tr>
|
175
|
+
<td bgcolor=3D=22=23DDDDDD=22 height=3D=221=22></td>
|
176
|
+
</tr>
|
177
|
+
<=21-- Optional case link row -->
|
178
|
+
<tr>
|
179
|
+
<td bgcolor=3D=22=23=466=466=466=22>
|
180
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
181
|
+
<tbody><tr>
|
182
|
+
<td class=3D=22padding=22 style=3D=22width: 20px;=22></td>
|
183
|
+
<td class=3D=22content=22 style=3D=22width: 560px;=22>
|
184
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
185
|
+
<tbody><tr>
|
186
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px;font-family: sans=
|
187
|
+
-serif; font-size: 13px;; color: =23272727; margin: 10px 0; line-height: =
|
188
|
+
18px;=22>
|
189
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
190
|
+
<tbody><tr>
|
191
|
+
<td style=3D=22width: 440px;=22>
|
192
|
+
<p style=3D=22text-decoration: none; color: =23272727; font-family: sans-=
|
193
|
+
serif; font-size: 13px;=22 href=3D=22http://login.caseblocks.com=23/case=5F=
|
194
|
+
types/3/case/5527d180cff45548a500004c/detail=22>
|
195
|
+
Bulk Uplift: <a href=3D=22=23=22 style=3D=22text-decoration: underline; c=
|
196
|
+
olor: =23228C8D; font-family: sans-serif; font-size: 13px;=22>
|
197
|
+
Bulk Uplift 36-002</a></p>
|
198
|
+
</td>
|
199
|
+
<td style=3D=22width: 20px;=22></td>
|
200
|
+
<td style=3D=22width: 140px;=22>
|
201
|
+
<p style=3D=22text-decoration: none; color: =23CCCCCC; font-family: sans-=
|
202
|
+
serif; font-size: 13px;=22>
|
203
|
+
<a href=3D=22http://login.caseblocks.com=23/case=5Ftypes/3/case/5527d180c=
|
204
|
+
ff45548a500004c/detail=22 style=3D=22text-decoration: underline; color: =23=
|
205
|
+
228C8D; font-family: sans-serif; font-size: 13px;=22>
|
206
|
+
<img src=3D=22https://s3.amazonaws.com/caseblocks=5Femail=5Flogos/email-b=
|
207
|
+
uttonToCase.png=22 width=3D=22136=22 height=3D=2245=22 style=3D=22display=
|
208
|
+
: block;=22 border=3D=220=22 alt=3D=22View the case=22></a></p>
|
209
|
+
</td>
|
210
|
+
</tr>
|
211
|
+
</tbody></table>
|
212
|
+
</td>
|
213
|
+
</tr>
|
214
|
+
</tbody></table>
|
215
|
+
</td>
|
216
|
+
<td class=3D=22padding=22 style=3D=22width: 20px;=22></td>
|
217
|
+
</tr>
|
218
|
+
</tbody></table>
|
219
|
+
</td>
|
220
|
+
<=21-- Inside end optional case link row --></tr>
|
221
|
+
<=21-- Border -->
|
222
|
+
<tr>
|
223
|
+
<td bgcolor=3D=22=23DDDDDD=22 height=3D=221=22></td>
|
224
|
+
</tr>
|
225
|
+
<tr>
|
226
|
+
<td bgcolor=3D=22=23=46=46=46=46=46=46=22>
|
227
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
228
|
+
<tbody><tr>
|
229
|
+
<td class=3D=22padding=22 style=3D=22width: 20px;=22></td>
|
230
|
+
<td class=3D=22content=22 style=3D=22width: 560px;=22>
|
231
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
232
|
+
<tbody><tr>
|
233
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px;=22 height=3D=223=
|
234
|
+
0=22></td>
|
235
|
+
</tr>
|
236
|
+
<tr>
|
237
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px;font-family: sans=
|
238
|
+
-serif; font-size: 13px;; color: =23272727; margin: 10px 0; line-height: =
|
239
|
+
18px;=22>
|
240
|
+
<p>Test Reply 3</p>
|
241
|
+
</td>
|
242
|
+
</tr>
|
243
|
+
<tr>
|
244
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px;=22 height=3D=223=
|
245
|
+
0=22></td>
|
246
|
+
</tr>
|
247
|
+
</tbody></table>
|
248
|
+
</td>
|
249
|
+
<td class=3D=22padding=22 style=3D=22width: 20px;=22></td>
|
250
|
+
</tr>
|
251
|
+
</tbody></table>
|
252
|
+
</td>
|
253
|
+
</tr>
|
254
|
+
<=21-- This is the Logo block -->
|
255
|
+
<tr>
|
256
|
+
<td bgcolor=3D=22=23DDDDDD=22 height=3D=221=22></td>
|
257
|
+
</tr>
|
258
|
+
<tr>
|
259
|
+
<td bgcolor=3D=22=23EEEEEE=22>
|
260
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
261
|
+
<tbody><tr>
|
262
|
+
<td class=3D=22padding=22 style=3D=22width: 20px;=22></td>
|
263
|
+
<td class=3D=22content=22 style=3D=22width: 560px;=22>
|
264
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
265
|
+
<tbody><tr>
|
266
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px;=22 height=3D=226=
|
267
|
+
=22></td>
|
268
|
+
</tr>
|
269
|
+
<tr>
|
270
|
+
<td class=3D=22content=5Frow=22 align=3D=22center=22 style=3D=22width: 58=
|
271
|
+
0px;=22>
|
272
|
+
<p style=3D=22text-decoration: none; color: =23363636; font-family: sans-=
|
273
|
+
serif; font-size: 13px;;=22>
|
274
|
+
This message was sent at 14 Apr 11:08 GMT</p>
|
275
|
+
<p style=3D=22text-decoration: none; color: =23363636; font-family: sans-=
|
276
|
+
serif; font-size: 13px;;=22>
|
277
|
+
Recipients <strong style=3D=22text-decoration: none; color: =23363636; fo=
|
278
|
+
nt-family: sans-serif; font-size: 13px;;=22>
|
279
|
+
Stewart</strong></p>
|
280
|
+
</td>
|
281
|
+
</tr>
|
282
|
+
<tr>
|
283
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px;=22 height=3D=226=
|
284
|
+
=22></td>
|
285
|
+
</tr>
|
286
|
+
</tbody></table>
|
287
|
+
</td>
|
288
|
+
<td class=3D=22padding=22 style=3D=22width: 20px;=22></td>
|
289
|
+
</tr>
|
290
|
+
</tbody></table>
|
291
|
+
</td>
|
292
|
+
</tr>
|
293
|
+
<tr>
|
294
|
+
<td bgcolor=3D=22=23C62C40=22>
|
295
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
296
|
+
<tbody><tr>
|
297
|
+
<td class=3D=22padding=22 style=3D=22width: 20px;=22></td>
|
298
|
+
<td class=3D=22content=22 style=3D=22width: 560px;=22>
|
299
|
+
<table cellspacing=3D=220=22 cellpadding=3D=220=22 border=3D=220=22>
|
300
|
+
<tbody><tr>
|
301
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px;=22 height=3D=228=
|
302
|
+
=22></td>
|
303
|
+
</tr>
|
304
|
+
<tr>
|
305
|
+
<td class=3D=22content=5Frow=22 align=3D=22center=22 style=3D=22width: 58=
|
306
|
+
0px;=22 height=3D=2210=22>
|
307
|
+
<p style=3D=22text-decoration: none; color: =23bfbfbf; font-family: sans-=
|
308
|
+
serif; font-size: 13px;;=22>
|
309
|
+
<strong style=3D=22text-decoration: none; color: =23ffffff; font-family: =
|
310
|
+
sans-serif; font-size: 13px;;=22>
|
311
|
+
<a href=3D=22http://login.caseblocks.com=23/case=5Ftypes/3/case/5527d180c=
|
312
|
+
ff45548a500004c/conversations/570f77bc81e9a825e2000001=22 style=3D=22text=
|
313
|
+
-decoration: none; color: =23ffffff; font-family: sans-serif; font-size: =
|
314
|
+
13px;;=22>
|
315
|
+
Click here</a></strong> to view the conversation history and the
|
316
|
+
Bulk Uplift in detail.</p>
|
317
|
+
</td>
|
318
|
+
</tr>
|
319
|
+
<tr>
|
320
|
+
<td class=3D=22content=5Frow=22 style=3D=22width: 560px;=22 height=3D=228=
|
321
|
+
=22></td>
|
322
|
+
</tr>
|
323
|
+
</tbody></table>
|
324
|
+
</td>
|
325
|
+
<td class=3D=22padding=22 style=3D=22width: 10px;=22></td>
|
326
|
+
</tr>
|
327
|
+
</tbody></table>
|
328
|
+
</td>
|
329
|
+
</tr>
|
330
|
+
</tbody></table>
|
331
|
+
|
332
|
+
|
333
|
+
</div></div></span></blockquote></body></html>
|
334
|
+
--570f818f_2de5f9a8_137
|
335
|
+
Content-Type: image/png
|
336
|
+
Content-Transfer-Encoding: base64
|
337
|
+
Content-ID: <3CBE7B35-FDDA-47E7-B567-3AE269CA3800>
|
338
|
+
Content-Disposition: inline; filename="D69E1746-1CEE-47FE-B7E2-8C64E6EC2C63.png"
|
339
|
+
|
340
|
+
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
|
451
|
+
cymsCM6CD/8XkPVUi4gUoCMAAAAASUVORK5CYII=
|
452
|
+
|
453
|
+
--570f818f_2de5f9a8_137--
|
454
|
+
|
455
|
+
--570f818f_3fb48f67_137--
|
@@ -0,0 +1,22 @@
|
|
1
|
+
def keys_match(actual, expected)
|
2
|
+
expected.keys.each do |key|
|
3
|
+
return false unless actual.keys.include?(key)
|
4
|
+
return false unless keys_match(actual[key], expected[key]) if expected[key].kind_of?(Hash)
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
RSpec::Matchers.define :match_keys_to do |expected|
|
9
|
+
match do |actual|
|
10
|
+
return false unless actual.kind_of? Hash
|
11
|
+
return false unless expected.kind_of? Hash
|
12
|
+
keys_match(actual, expected)
|
13
|
+
end
|
14
|
+
|
15
|
+
failure_message do |actual|
|
16
|
+
if actual.kind_of?(Hash) && expected.kind_of?(Hash)
|
17
|
+
"expected that #{actual} would match the keys of #{expected}"
|
18
|
+
else
|
19
|
+
"actual and expected should be a kind of Hash"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/spec/helpers.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
module Helpers
|
2
|
+
def setup_env
|
3
|
+
ENV["REDIS_URL"] = "http://test-local.net"
|
4
|
+
ENV["MYSQL_HOST"] = "test-local"
|
5
|
+
ENV["MYSQL_DATABASE"] = "test-db"
|
6
|
+
ENV["MYSQL_USERNAME"] = "test-username"
|
7
|
+
ENV["MYSQL_PASSWORD"] = "test-password"
|
8
|
+
end
|
9
|
+
|
10
|
+
def sample_mail(mail_key)
|
11
|
+
File.read("samples/#{mail_key}.txt")
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe Mail2cb::EmailContent do
|
3
|
+
|
4
|
+
it "parses html content" do
|
5
|
+
email = Mail.new(sample_mail("reply"))
|
6
|
+
content = Mail2cb::EmailContent.new(email)
|
7
|
+
expect(content.html).to include "<html"
|
8
|
+
end
|
9
|
+
it "parses text content" do
|
10
|
+
email = Mail.new(sample_mail("reply"))
|
11
|
+
content = Mail2cb::EmailContent.new(email)
|
12
|
+
expect(content.text).to_not include "<html"
|
13
|
+
end
|
14
|
+
it "favours html over text" do
|
15
|
+
email = Mail.new(sample_mail("reply"))
|
16
|
+
content = Mail2cb::EmailContent.new(email)
|
17
|
+
expect(content.body).to eq content.html
|
18
|
+
end
|
19
|
+
|
20
|
+
it "handles multipart_related" do
|
21
|
+
email = Mail.new(sample_mail("reply_message_id_in_body"))
|
22
|
+
content = Mail2cb::EmailContent.new(email)
|
23
|
+
expect(content.html).to_not be_nil
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
end
|