vmail 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/NOTES +541 -0
- data/README.markdown +29 -0
- data/Rakefile +21 -0
- data/bin/vmail +11 -0
- data/bin/vmail_client +13 -0
- data/config/environment.rb +18 -0
- data/config/gmail.orig.yml +8 -0
- data/gmail.vim +180 -0
- data/lib/contacts_extractor.rb +50 -0
- data/lib/gmail.rb +145 -0
- data/lib/vmail.rb +45 -0
- data/lib/vmail/imap_client.rb +495 -0
- data/lib/vmail/message_formatter.rb +113 -0
- data/lib/vmail/string_ext.rb +11 -0
- data/lib/vmail/version.rb +3 -0
- data/test/base64_test.rb +13 -0
- data/test/fixtures/euc-kr-header.eml +23 -0
- data/test/fixtures/euc-kr-html.eml +162 -0
- data/test/fixtures/google-affiliate.eml +1049 -0
- data/test/fixtures/htmlbody.eml +68 -0
- data/test/fixtures/moleskine-html.eml +82 -0
- data/test/fixtures/textbody-nocontenttype.eml +118 -0
- data/test/fixtures/with-attachments.eml +123 -0
- data/test/message_formatter_test.rb +84 -0
- data/test/test_helper.rb +10 -0
- data/test/time_format_test.rb +15 -0
- data/viewer.vim +623 -0
- data/vmail.gemspec +23 -0
- data/wrapper.rb +8 -0
- metadata +117 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
Delivered-To: dhchoi@gmail.com
|
2
|
+
Received: by 10.213.9.14 with SMTP id j14cs440563ebj;
|
3
|
+
Tue, 30 Nov 2010 20:38:22 -0800 (PST)
|
4
|
+
Return-Path: <3OdH1TBQKBk0v33v0tp0t687-236t40Dv33v0t.r31swrw3xv1px0.r31@alerts.bounces.google.com>
|
5
|
+
Received-SPF: pass (google.com: domain of 3OdH1TBQKBk0v33v0tp0t687-236t40Dv33v0t.r31swrw3xv1px0.r31@alerts.bounces.google.com designates 10.142.142.5 as permitted sender) client-ip=10.142.142.5;
|
6
|
+
Authentication-Results: mr.google.com; spf=pass (google.com: domain of 3OdH1TBQKBk0v33v0tp0t687-236t40Dv33v0t.r31swrw3xv1px0.r31@alerts.bounces.google.com designates 10.142.142.5 as permitted sender) smtp.mail=3OdH1TBQKBk0v33v0tp0t687-236t40Dv33v0t.r31swrw3xv1px0.r31@alerts.bounces.google.com; dkim=pass header.i=3OdH1TBQKBk0v33v0tp0t687-236t40Dv33v0t.r31swrw3xv1px0.r31@alerts.bounces.google.com
|
7
|
+
Received: from mr.google.com ([10.142.142.5])
|
8
|
+
by 10.142.142.5 with SMTP id p5mr7104191wfd.3.1291178297749 (num_hops = 1);
|
9
|
+
Tue, 30 Nov 2010 20:38:17 -0800 (PST)
|
10
|
+
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
11
|
+
d=google.com; s=beta;
|
12
|
+
h=domainkey-signature:mime-version:received:list-unsubscribe:list-id
|
13
|
+
:message-id:date:subject:from:to:content-type
|
14
|
+
:content-transfer-encoding;
|
15
|
+
bh=/dtEwtj9nryxv7jLT5rigjL1rHwRmVxqj7Wa6yxnxU4=;
|
16
|
+
b=VlFSgeZzYD6Q5B+lvk/GsNtSNxXFjpn44xTzbsJYrj0hHFFZ9I1PuZ+y1LR92220YU
|
17
|
+
Dgk4q6SXBdQ4p8B6etMA==
|
18
|
+
DomainKey-Signature: a=rsa-sha1; c=nofws;
|
19
|
+
d=google.com; s=beta;
|
20
|
+
h=mime-version:list-unsubscribe:list-id:message-id:date:subject:from
|
21
|
+
:to:content-type:content-transfer-encoding;
|
22
|
+
b=xsInsJwPtnKki+cUs3OBRPjD2TgJa4WPvYBXseDYhZAkTeKHG92SoyKDI5hlQDtWnu
|
23
|
+
N4sQ9rGo0fQYStusAjNA==
|
24
|
+
MIME-Version: 1.0
|
25
|
+
Received: by 10.142.142.5 with SMTP id p5mr5431426wfd.3.1291178297693; Tue, 30
|
26
|
+
Nov 2010 20:38:17 -0800 (PST)
|
27
|
+
List-Unsubscribe: <mailto:ur@unsubscribe.alerts.google.com?subject=AB2Xq4jnlMo1qfTSQD40nXw8MmxVceDe5Jt4AFU>
|
28
|
+
List-Id: <AB2Xq4jnlMo1qfTSQD40nXw8MmxVceDe5Jt4AFU.alerts.google.com>
|
29
|
+
Message-ID: <000e0cd17eb0c69790049651df58@google.com>
|
30
|
+
Date: Wed, 01 Dec 2010 04:38:17 +0000
|
31
|
+
Subject: Google Alert - instantwatcher.com netflix
|
32
|
+
From: Google Alerts <googlealerts-noreply@google.com>
|
33
|
+
To: dhchoi@gmail.com
|
34
|
+
Content-Type: text/html; charset=ISO-8859-1
|
35
|
+
Content-Transfer-Encoding: quoted-printable
|
36
|
+
|
37
|
+
<html><head></head><body><div style=3D"font-family: arial,sans-serif; width=
|
38
|
+
: 600px"><table cellpadding=3D"0" cellspacing=3D"0" border=3D"0" width=3D"6=
|
39
|
+
00px"><tr><td style=3D"background-color:#EBEFF9; padding: 4px 8px 4px 8px">=
|
40
|
+
<table cellpadding=3D"0" cellspacing=3D"0" border=3D"0" width=3D"100%"><tr>=
|
41
|
+
<td><font size=3D"-1"><nobr><b>Web</b></nobr></font></td><td width=3D"70%" =
|
42
|
+
align=3D"right"><font size=3D"-1"><b>1</b> new result for <b>instantwatcher=
|
43
|
+
.com netflix</b></font></td></tr></table></td></tr><tr><td> </td></tr>=
|
44
|
+
<tr><td style=3D"padding: 0px 8px 16px 8px;"><a style=3D"color: #1111CC" hr=
|
45
|
+
ef=3D"http://www.google.com/url?sa=3DX&q=3Dhttp://instantwatcher.com/ti=
|
46
|
+
tles/159979&ct=3Dga&cad=3DCAcQAhgAIAEoATAAOABAuaLX5wRIAVgAYgVlbi1VU=
|
47
|
+
w&cd=3D49ivnFGfvQY&usg=3DAFQjCNF6qCPnWAAXMxSumwvcxGImQfsnZw"><b>ins=
|
48
|
+
tantwatcher.com</b> - Ararat (2002)</a><br><font size=3D"-1">Sign up for <b=
|
49
|
+
>Netflix</b> & watch any of these movies now. Help <b>Instantwatcher.co=
|
50
|
+
m</b> by Liking or Tweeting: <b>...</b> Rate & Review <b>InstantWatcher=
|
51
|
+
</b> for other <b>Netflix</b> users <b>...</b><br><a style=3D"color:#228822=
|
52
|
+
" href=3D"http://www.google.com/url?sa=3DX&q=3Dhttp://instantwatcher.co=
|
53
|
+
m/titles/159979&ct=3Dga&cad=3DCAcQAhgAIAEoBDAAOABAuaLX5wRIAVgAYgVlb=
|
54
|
+
i1VUw&cd=3D49ivnFGfvQY&usg=3DAFQjCNF6qCPnWAAXMxSumwvcxGImQfsnZw" ti=
|
55
|
+
tle=3D"http://instantwatcher.com/titles/159979">instantwatcher.com/titles/1=
|
56
|
+
59979</a></font></td></tr></table><br><hr noshade size=3D"1" color=3D"#CCCC=
|
57
|
+
CC"><font size=3D"-1">Tip: Use a plus sign (+) to match a term in your quer=
|
58
|
+
y exactly as is. <a href=3D'http://www.google.com/support/websearch/bin/ans=
|
59
|
+
wer.py?answer=3D136861&hl=3Den&gl=3Dus&source=3Dalertsmail&cd=3D49ivnFGfvQY=
|
60
|
+
&cad=3DCAcQAhgAQLmi1-cESAE'>Learn more</a>.</font><br><br><font size=3D"-1"=
|
61
|
+
><a href=3D"http://www.google.com/alerts/remove?s=3DAB2Xq4jnlMo1qfTSQD40nXw=
|
62
|
+
8MmxVceDe5Jt4AFU&hl=3Den&gl=3Dus&source=3Dalertsmail&cd=3D49ivnFGfvQY&cad=
|
63
|
+
=3DCAcQAhgAQLmi1-cESAE">Remove</a> this alert.<br><a href=3D"http://www.goo=
|
64
|
+
gle.com/alerts?hl=3Den&gl=3Dus&source=3Dalertsmail&cd=3D49ivnFGfvQY&cad=3DC=
|
65
|
+
AcQAhgAQLmi1-cESAE">Create</a> another alert.<br><a href=3D"http://www.goog=
|
66
|
+
le.com/alerts/manage?hl=3Den&gl=3Dus&source=3Dalertsmail&cd=3D49ivnFGfvQY&c=
|
67
|
+
ad=3DCAcQAhgAQLmi1-cESAE">Manage</a> your alerts.</font></div></body></html=
|
68
|
+
>
|
@@ -0,0 +1,82 @@
|
|
1
|
+
Delivered-To: dhchoi@gmail.com
|
2
|
+
Received: by 10.213.9.14 with SMTP id j14cs474356ebj;
|
3
|
+
Wed, 1 Dec 2010 07:53:24 -0800 (PST)
|
4
|
+
Received: by 10.142.12.16 with SMTP id 16mr8973413wfl.8.1291218802957;
|
5
|
+
Wed, 01 Dec 2010 07:53:22 -0800 (PST)
|
6
|
+
Return-Path: <MoleskineUS_mmalcc-dhchoi=gmail.com@cp20.com>
|
7
|
+
Received: from mta80.cp20.com (mta80.cp20.com [216.24.226.80])
|
8
|
+
by mx.google.com with ESMTP id e7si261683ibb.58.2010.12.01.07.53.21;
|
9
|
+
Wed, 01 Dec 2010 07:53:21 -0800 (PST)
|
10
|
+
Received-SPF: pass (google.com: domain of MoleskineUS_mmalcc-dhchoi=gmail.com@cp20.com designates 216.24.226.80 as permitted sender) client-ip=216.24.226.80;
|
11
|
+
DomainKey-Status: good
|
12
|
+
Authentication-Results: mx.google.com; spf=pass (google.com: domain of MoleskineUS_mmalcc-dhchoi=gmail.com@cp20.com designates 216.24.226.80 as permitted sender) smtp.mail=MoleskineUS_mmalcc-dhchoi=gmail.com@cp20.com; domainkeys=pass header.From=news@cp20.com
|
13
|
+
DomainKey-Signature: a=rsa-sha1; c=nofws; q=dns; s=key1; d=cp20.com;
|
14
|
+
b=gVx4wrLqmRxUiFX5NNxjuMXpGZNX7SLPJWcs3swy+3XsmudLsLsvcQFeKmLGOKri9vtaNgzn4J5n
|
15
|
+
P0oBfd4U6X6oHzFjMQU8dZPnscoy24GibhfTVHyMwCZ3FOzAOhbMXKUDwe6W1LfjMu2etnA/81qr
|
16
|
+
DcT8b1hIN21mVsggLQk=;
|
17
|
+
Received: by mta80.cp20.com id hupnng0l9ukg for <dhchoi@gmail.com>; Wed, 1 Dec 2010 10:52:19 -0500 (envelope-from <MoleskineUS_mmalcc-dhchoi=gmail.com@cp20.com>)
|
18
|
+
Message-ID: <1291218604233.1344720.3384524.411591315@backend.cp20.com>
|
19
|
+
Date: Wed, 1 Dec 2010 10:52:19 -0500
|
20
|
+
X-Campaign: 1344720/3384524/411591315
|
21
|
+
List-Unsubscribe: <mailto:MoleskineUS_leuwv_cdrorgd@cp20.com?subject=unsubscribe>
|
22
|
+
Bounces-To: MoleskineUS_leuwv_cdrorgd@cp20.com
|
23
|
+
Errors-To: MoleskineUS_leuwv_cdrorgd@cp20.com
|
24
|
+
Reply-To: MoleskineUS_leuwv_cdrorgd@cp20.com
|
25
|
+
Sender: news@moleskineus.cp20.com
|
26
|
+
To: <dhchoi@gmail.com>
|
27
|
+
From: "MoleskineUS" <news@moleskineus.com>
|
28
|
+
Subject: Moleskine for the Holidays - Free Shipping!
|
29
|
+
MIME-Version: 1.0
|
30
|
+
Content-Type: text/html
|
31
|
+
|
32
|
+
<!-- X-Campaign: 1344720/3384524/411591315 -->
|
33
|
+
<table id="head" width="675" border="0" cellpadding="0" cellspacing="0">
|
34
|
+
<tr>
|
35
|
+
<td style="font-size: 10px; font-family: Tahoma,Arial,Helvetica; text-align: center;">Welcome! (Trouble viewing our newsletter? <a target="_blank" href="http://trk.cp20.com/Tracking/t.c?ECT6-D1F8-Rqzhb2">Click here to view on-line</a>)</td>
|
36
|
+
</tr>
|
37
|
+
</table>
|
38
|
+
<div style="background-color: rgb(142, 177, 183);">
|
39
|
+
<table id="nl" width="675" border="0" cellpadding="0" cellspacing="0">
|
40
|
+
<tr>
|
41
|
+
<td colspan="2">
|
42
|
+
<a href="http://trk.cp20.com/Tracking/t.c?ECT6-D1F9-Rqzhb3">
|
43
|
+
<img style="display: block;" src="http://media.moleskineus.com/newsletter/nl101201/nl101201_01.jpg" alt="" width="675" border="0" height="133"></a></td>
|
44
|
+
</tr>
|
45
|
+
<tr>
|
46
|
+
<td>
|
47
|
+
<a href="http://trk.cp20.com/Tracking/t.c?ECT6-D1FA-Rqzhb1">
|
48
|
+
<img style="display: block;" src="http://media.moleskineus.com/newsletter/nl101201/nl101201_02.jpg" alt="" width="434" border="0" height="529"></a></td>
|
49
|
+
<td>
|
50
|
+
<a href="http://trk.cp20.com/Tracking/t.c?ECT6-D1FB-Rqzhb2">
|
51
|
+
<img style="display: block;" src="http://media.moleskineus.com/newsletter/nl101201/nl101201_03.jpg" alt="" width="241" border="0" height="529"></a></td>
|
52
|
+
</tr>
|
53
|
+
<tr>
|
54
|
+
<td colspan="2">
|
55
|
+
<a href="http://trk.cp20.com/Tracking/t.c?ECT6-D1FC-Rqzhb3">
|
56
|
+
<img style="display: block;" src="http://media.moleskineus.com/newsletter/nl101201/nl101201_04.jpg" alt="" width="675" border="0" height="92"></a></td>
|
57
|
+
</tr>
|
58
|
+
<tr>
|
59
|
+
<td colspan="2">
|
60
|
+
<a href="http://trk.cp20.com/Tracking/t.c?ECT6-D1FD-Rqzhb4">
|
61
|
+
<img style="display: block;" src="http://media.moleskineus.com/newsletter/nl101201/nl101201_05.jpg" alt="" width="675" border="0" height="215"></a></td>
|
62
|
+
</tr>
|
63
|
+
</table>
|
64
|
+
<table id="foot" width="675" border="0" cellpadding="0" cellspacing="0">
|
65
|
+
<tr id="forward2friend">
|
66
|
+
<td style="font-size: 12px; font-family: Tahoma,Arial,Helvetica; padding: 5px;" align="center"><em><a href="http://trk.cp20.com/Tracking/t.f2f?ECT6--kSK-Rqzhb9">Forward to a friend</a></em></td>
|
67
|
+
</tr>
|
68
|
+
<tr>
|
69
|
+
<td style="font-size: 12px; font-family: Tahoma,Arial,Helvetica; padding: 0px 20px 10px;" align="center"><p style="margin-top: 0pt;">The European Paper Company owns and operates the MoleskineUS.com website, offering retail purchase of the complete line of Moleskine books and related products. At MoleskineUS.com you can learn about the history and design of Moleskine books, as well as explore creative submissions from users who have expressed themselves through Moleskine® notebooks. Moleskine® is a registered trademark of Moleskine Srl which is not affiliated with The European Paper Company.</p>
|
70
|
+
<p> <a href="mailto:info@moleskineUS.com">info@moleskineUS.com</a> · 1-888-822-1036 · <a href="http://trk.cp20.com/Tracking/t.c?ECT6-D1FE-Rqzhb5">www.MoleskineUS.com</a><br>
|
71
|
+
<br>
|
72
|
+
The European Paper Company · 4775 Walnut Street Suite C · Boulder, Colorado 80301 </p></td>
|
73
|
+
</tr>
|
74
|
+
</table>
|
75
|
+
</div>
|
76
|
+
<br/><div style="color: black; background: white;">You are subscribed to this mailing list as dhchoi@gmail.com. Please <a href="http://trk.cp20.com/Tracking/t.fo?ECT6--1lRo-Rqzhb4" >click here</a> to modify your message preferences or to unsubscribe from any future mailings. We will respect all unsubscribe requests.</div>
|
77
|
+
<br><hr size="1">
|
78
|
+
|
79
|
+
<a href="http://www.campaigner.com/campaignerPro.php?utm_source=campaigner&utm_medium=email&utm_campaign=deliveryfooter">
|
80
|
+
|
81
|
+
<img src="http://images.campaigner.com/cpro/poweredby.gif" border="0"></a>
|
82
|
+
<img src="http://trk.cp20.com/Tracking/t.o?ECT6--Rqzhb9" width="0" height="0">
|
@@ -0,0 +1,118 @@
|
|
1
|
+
Delivered-To: dhchoi@gmail.com
|
2
|
+
Received: by 10.213.9.14 with SMTP id j14cs451758ebj;
|
3
|
+
Wed, 1 Dec 2010 01:38:13 -0800 (PST)
|
4
|
+
Received: by 10.100.57.12 with SMTP id f12mr6087714ana.261.1291196289582;
|
5
|
+
Wed, 01 Dec 2010 01:38:09 -0800 (PST)
|
6
|
+
Return-Path: <zoe2@instantwatcher.com>
|
7
|
+
Received: from ubuntu (li33-165.members.linode.com [207.192.71.165])
|
8
|
+
by mx.google.com with ESMTP id r3si17607346qcs.94.2010.12.01.01.38.09;
|
9
|
+
Wed, 01 Dec 2010 01:38:09 -0800 (PST)
|
10
|
+
Received-SPF: neutral (google.com: 207.192.71.165 is neither permitted nor denied by best guess record for domain of zoe2@instantwatcher.com) client-ip=207.192.71.165;
|
11
|
+
Authentication-Results: mx.google.com; spf=neutral (google.com: 207.192.71.165 is neither permitted nor denied by best guess record for domain of zoe2@instantwatcher.com) smtp.mail=zoe2@instantwatcher.com
|
12
|
+
Received: by ubuntu (Postfix, from userid 1000)
|
13
|
+
id 05FDDC9C6; Wed, 1 Dec 2010 04:38:09 -0500 (EST)
|
14
|
+
To: dhchoi@gmail.com
|
15
|
+
Subject: result of bin/confirm_valid run
|
16
|
+
Message-Id: <20101201093809.05FDDC9C6@ubuntu>
|
17
|
+
Date: Wed, 1 Dec 2010 04:38:09 -0500 (EST)
|
18
|
+
From: zoe2@instantwatcher.com
|
19
|
+
|
20
|
+
Friday the 13th,http://api.netflix.com/catalog/titles/movies/525111,1291190400,1300258800,1290016457,http://www.netflix.com/Movie/Friday_the_13th/525111
|
21
|
+
Friday the 13th: Part 2,http://api.netflix.com/catalog/titles/movies/525119,1291190400,1300258800,1290016457,http://www.netflix.com/Movie/Friday_the_13th_Part_2/525119
|
22
|
+
Top Gun,http://api.netflix.com/catalog/titles/movies/1056189,1291190400,1298966400,1290016457,http://www.netflix.com/Movie/Top_Gun/1056189
|
23
|
+
Hamburger Hill,http://api.netflix.com/catalog/titles/movies/569355,1291190400,1310799600,1288085283,http://www.netflix.com/Movie/Hamburger_Hill/569355
|
24
|
+
Friends & Lovers,http://api.netflix.com/catalog/titles/movies/21871853,1291190400,1306825200,1287046718,http://www.netflix.com/Movie/Friends_Lovers/21871853
|
25
|
+
The War,http://api.netflix.com/catalog/titles/movies/1102978,1291190400,1385884800,1287386462,http://www.netflix.com/Movie/The_War/1102978
|
26
|
+
Volcano,http://api.netflix.com/catalog/titles/movies/1153506,1291190400,1322726400,1272481858,http://www.netflix.com/Movie/Volcano/1153506
|
27
|
+
Rock Star,http://api.netflix.com/catalog/titles/movies/60004466,1291190400,1306911600,1289673593,http://www.netflix.com/Movie/Rock_Star/60004466
|
28
|
+
The Pledge,http://api.netflix.com/catalog/titles/movies/60004419,1291190400,1306911600,1288029756,http://www.netflix.com/Movie/The_Pledge/60004419
|
29
|
+
Henry V,http://api.netflix.com/catalog/titles/movies/60001265,1291190400,1301641200,1289301838,http://www.netflix.com/Movie/Henry_V/60001265
|
30
|
+
Friday the 13th: Part 3,http://api.netflix.com/catalog/titles/movies/60002389,1291190400,1300258800,1290016457,http://www.netflix.com/Movie/Friday_the_13th_Part_3/60002389
|
31
|
+
Snow Falling on Cedars,http://api.netflix.com/catalog/titles/movies/60000439,1291190400,1372662000,1290622147,http://www.netflix.com/Movie/Snow_Falling_on_Cedars/60000439
|
32
|
+
The Killing Fields,http://api.netflix.com/catalog/titles/movies/671140,1291190400,1306911600,1278443172,http://www.netflix.com/Movie/The_Killing_Fields/671140
|
33
|
+
Friday the 13th: Part 4: The Final Chapter,http://api.netflix.com/catalog/titles/movies/60002390,1291190400,1300258800,1290016457,http://www.netflix.com/Movie/Friday_the_13th_Part_4_The_Final_Chapter/60002390
|
34
|
+
The Beach,http://api.netflix.com/catalog/titles/movies/60000199,1291190400,1322726400,1291053415,http://www.netflix.com/Movie/The_Beach/60000199
|
35
|
+
Joe's Apartment,http://api.netflix.com/catalog/titles/movies/655167,1291190400,1306911600,1280530574,http://www.netflix.com/Movie/Joe_s_Apartment/655167
|
36
|
+
Colors,http://api.netflix.com/catalog/titles/movies/60020957,1291190400,1293868800,1288403263,http://www.netflix.com/Movie/Colors/60020957
|
37
|
+
Date With an Angel,http://api.netflix.com/catalog/titles/movies/60024242,1291190400,1393660800,1290245274,http://www.netflix.com/Movie/Date_With_an_Angel/60024242
|
38
|
+
What's Cooking?,http://api.netflix.com/catalog/titles/movies/60020580,1291190400,1306911600,1287004378,http://www.netflix.com/Movie/What_s_Cooking/60020580
|
39
|
+
Death to Smoochy,http://api.netflix.com/catalog/titles/movies/60022713,1291190400,1306911600,1287606237,http://www.netflix.com/Movie/Death_to_Smoochy/60022713
|
40
|
+
All the Queen's Men,http://api.netflix.com/catalog/titles/movies/60024995,1291190400,1306911600,1287690387,http://www.netflix.com/Movie/All_the_Queen_s_Men/60024995
|
41
|
+
Rookie of the Year,http://api.netflix.com/catalog/titles/movies/60021965,1291190400,1322726400,1277017646,http://www.netflix.com/Movie/Rookie_of_the_Year/60021965
|
42
|
+
The Corporation,http://api.netflix.com/catalog/titles/movies/60034810,1291190400,1354348800,1288739577,http://www.netflix.com/Movie/The_Corporation/60034810
|
43
|
+
Mr. Jealousy,http://api.netflix.com/catalog/titles/movies/1180866,1291190400,1306825200,1288370361,http://www.netflix.com/Movie/Mr._Jealousy/1180866
|
44
|
+
The Rains Came,http://api.netflix.com/catalog/titles/movies/60011319,1291190400,1325318400,1273554667,http://www.netflix.com/Movie/The_Rains_Came/60011319
|
45
|
+
Guilty Conscience,http://api.netflix.com/catalog/titles/movies/60032630,1291190400,1322726400,1289002820,http://www.netflix.com/Movie/Guilty_Conscience/60032630
|
46
|
+
Rocky III,http://api.netflix.com/catalog/titles/movies/60010836,1291190400,1293868800,1287004378,http://www.netflix.com/Movie/Rocky_III/60010836
|
47
|
+
The Indian Runner,http://api.netflix.com/catalog/titles/movies/60021490,1291190400,1293868800,1287536604,http://www.netflix.com/Movie/The_Indian_Runner/60021490
|
48
|
+
Fruit of the Vine,http://api.netflix.com/catalog/titles/movies/60026024,1291190400,1322726400,1290277785,http://www.netflix.com/Movie/Fruit_of_the_Vine/60026024
|
49
|
+
All the Little Animals,http://api.netflix.com/catalog/titles/movies/60029926,1291190400,1306825200,1287127636,http://www.netflix.com/Movie/All_the_Little_Animals/60029926
|
50
|
+
Rocky V,http://api.netflix.com/catalog/titles/movies/60025674,1291190400,1293868800,1287004378,http://www.netflix.com/Movie/Rocky_V/60025674
|
51
|
+
Mayor of the Sunset Strip,http://api.netflix.com/catalog/titles/movies/60037221,1291190400,1322726400,1290035376,http://www.netflix.com/Movie/Mayor_of_the_Sunset_Strip/60037221
|
52
|
+
Police Academy: Special Edition,http://api.netflix.com/catalog/titles/movies/60035683,1291190400,1306911600,1289238890,http://www.netflix.com/Movie/Police_Academy_Special_Edition/60035683
|
53
|
+
Murder By Numbers,http://api.netflix.com/catalog/titles/movies/60022942,1291190400,1306911600,1290675384,http://www.netflix.com/Movie/Murder_By_Numbers/60022942
|
54
|
+
Friday the 13th: Part 8: Jason Takes Manhattan,http://api.netflix.com/catalog/titles/movies/60024025,1291190400,1300258800,1289029485,http://www.netflix.com/Movie/Friday_the_13th_Part_8_Jason_Takes_Manhattan/60024025
|
55
|
+
Running Scared,http://api.netflix.com/catalog/titles/movies/60020963,1291190400,1298966400,1287004378,http://www.netflix.com/Movie/Running_Scared/60020963
|
56
|
+
Roger & Me,http://api.netflix.com/catalog/titles/movies/60028925,1291190400,1306911600,1278443172,http://www.netflix.com/Movie/Roger_Me/60028925
|
57
|
+
Friday the 13th: Part 6: Jason Lives,http://api.netflix.com/catalog/titles/movies/60020926,1291190400,1300258800,1290016457,http://www.netflix.com/Movie/Friday_the_13th_Part_6_Jason_Lives/60020926
|
58
|
+
Frankie and Johnny,http://api.netflix.com/catalog/titles/movies/60021512,1291190400,1298966400,1290675384,http://www.netflix.com/Movie/Frankie_and_Johnny/60021512
|
59
|
+
Friday the 13th: Part 5: A New Beginning,http://api.netflix.com/catalog/titles/movies/60020915,1291190400,1300258800,1290016457,http://www.netflix.com/Movie/Friday_the_13th_Part_5_A_New_Beginning/60020915
|
60
|
+
Friday the 13th: Part 7: The New Blood,http://api.netflix.com/catalog/titles/movies/60024024,1291190400,1300258800,1289029332,http://www.netflix.com/Movie/Friday_the_13th_Part_7_The_New_Blood/60024024
|
61
|
+
Rain Man,http://api.netflix.com/catalog/titles/movies/60029369,1291190400,1298966400,1287004378,http://www.netflix.com/Movie/Rain_Man/60029369
|
62
|
+
Desperate Hours,http://api.netflix.com/catalog/titles/movies/60022336,1291190400,1298966400,1287004378,http://www.netflix.com/Movie/Desperate_Hours/60022336
|
63
|
+
Beat,http://api.netflix.com/catalog/titles/movies/60024149,1291190400,1306825200,1287128967,http://www.netflix.com/Movie/Beat/60024149
|
64
|
+
Lord of Illusions,http://api.netflix.com/catalog/titles/movies/712990,1291190400,1301641200,1287084613,http://www.netflix.com/Movie/Lord_of_Illusions/712990
|
65
|
+
Full Clip,http://api.netflix.com/catalog/titles/movies/70001905,1291190400,1306825200,1287390319,http://www.netflix.com/Movie/Full_Clip/70001905
|
66
|
+
True Confessions,http://api.netflix.com/catalog/titles/movies/70004085,1291190400,1301641200,1290018529,http://www.netflix.com/Movie/True_Confessions/70004085
|
67
|
+
Easy Money,http://api.netflix.com/catalog/titles/movies/70018000,1291190400,1309503600,1288913508,http://www.netflix.com/Movie/Easy_Money/70018000
|
68
|
+
The Big Blue,http://api.netflix.com/catalog/titles/movies/303952,1291190400,1300258800,1287571129,http://www.netflix.com/Movie/The_Big_Blue/303952
|
69
|
+
Batman Forever,http://api.netflix.com/catalog/titles/movies/287348,1291190400,1306911600,1283540560,http://www.netflix.com/Movie/Batman_Forever/287348
|
70
|
+
Care Bears: Big Wish Movie,http://api.netflix.com/catalog/titles/movies/70039024,1291190400,1354348800,1289385222,http://www.netflix.com/Movie/Care_Bears_Big_Wish_Movie/70039024
|
71
|
+
Box of Moonlight,http://api.netflix.com/catalog/titles/movies/327306,1291190400,1301641200,1287004378,http://www.netflix.com/Movie/Box_of_Moonlight/327306
|
72
|
+
The Bonfire of the Vanities,http://api.netflix.com/catalog/titles/movies/323077,1291190400,1306911600,1291053415,http://www.netflix.com/Movie/The_Bonfire_of_the_Vanities/323077
|
73
|
+
The Deadly Companions,http://api.netflix.com/catalog/titles/movies/70021682,1291190400,1322726400,1288142052,http://www.netflix.com/Movie/The_Deadly_Companions/70021682
|
74
|
+
Outbreak,http://api.netflix.com/catalog/titles/movies/834585,1291190400,1306911600,1285348464,http://www.netflix.com/Movie/Outbreak/834585
|
75
|
+
Sabah: A Love Story,http://api.netflix.com/catalog/titles/movies/70070392,1291190400,1354348800,1289648240,http://www.netflix.com/Movie/Sabah_A_Love_Story/70070392
|
76
|
+
Any Wednesday,http://api.netflix.com/catalog/titles/movies/70060389,1291190400,1306911600,1288370462,http://www.netflix.com/Movie/Any_Wednesday/70060389
|
77
|
+
The Vice Guide to Travel,http://api.netflix.com/catalog/titles/series/70055589,1291190400,1322726400,1285718252,http://www.netflix.com/Movie/The_Vice_Guide_to_Travel/70055589
|
78
|
+
Attack of the 50 Ft. Woman,http://api.netflix.com/catalog/titles/movies/70068950,1291190400,1306911600,1287606022,http://www.netflix.com/Movie/Attack_of_the_50_Ft._Woman/70068950
|
79
|
+
The Parallax View,http://api.netflix.com/catalog/titles/movies/841836,1291190400,1310799600,1290798754,http://www.netflix.com/Movie/The_Parallax_View/841836
|
80
|
+
American Dragon,http://api.netflix.com/catalog/titles/movies/70064129,1291190400,1314860400,1287004378,http://www.netflix.com/Movie/American_Dragon/70064129
|
81
|
+
Short Order,http://api.netflix.com/catalog/titles/movies/70080728,1291190400,1322726400,1290034752,http://www.netflix.com/Movie/Short_Order/70080728
|
82
|
+
The Pope's Toilet,http://api.netflix.com/catalog/titles/movies/70110977,1291190400,1354348800,1279577596,http://www.netflix.com/Movie/The_Pope_s_Toilet/70110977
|
83
|
+
Kiss the Bride,http://api.netflix.com/catalog/titles/movies/70098574,1291190400,1293868800,1289381293,http://www.netflix.com/Movie/Kiss_the_Bride/70098574
|
84
|
+
Stone of Destiny,http://api.netflix.com/catalog/titles/movies/70105937,1291190400,1354348800,1289386617,http://www.netflix.com/Movie/Stone_of_Destiny/70105937
|
85
|
+
The Universe of Keith Haring,http://api.netflix.com/catalog/titles/movies/70105985,1291190400,1354348800,1290033939,http://www.netflix.com/Movie/The_Universe_of_Keith_Haring/70105985
|
86
|
+
Insidious,http://api.netflix.com/catalog/titles/movies/70099607,1291190400,1322726400,1288396528,http://www.netflix.com/Movie/Insidious/70099607
|
87
|
+
The Year of the Nail,http://api.netflix.com/catalog/titles/movies/70084334,1291190400,1322726400,1290277729,http://www.netflix.com/Movie/The_Year_of_the_Nail/70084334
|
88
|
+
Richard III,http://api.netflix.com/catalog/titles/movies/26587474,1291190400,1330588800,1290245274,http://www.netflix.com/Movie/Richard_III/26587474
|
89
|
+
From Within,http://api.netflix.com/catalog/titles/movies/70109688,1291190400,1298966400,1287650476,http://www.netflix.com/Movie/From_Within/70109688
|
90
|
+
Slaughter,http://api.netflix.com/catalog/titles/movies/70113444,1291190400,1298966400,1287476216,http://www.netflix.com/Movie/Slaughter/70113444
|
91
|
+
Sixty Six,http://api.netflix.com/catalog/titles/movies/70102774,1291190400,1385884800,1290105993,http://www.netflix.com/Movie/Sixty_Six/70102774
|
92
|
+
Message in a Bottle,http://api.netflix.com/catalog/titles/movies/18179651,1291190400,1306911600,1290622147,http://www.netflix.com/Movie/Message_in_a_Bottle/18179651
|
93
|
+
The Presidio,http://api.netflix.com/catalog/titles/movies/871916,1291190400,1298966400,1288340319,http://www.netflix.com/Movie/The_Presidio/871916
|
94
|
+
Up the Yangtze,http://api.netflix.com/catalog/titles/movies/70084172,1291190400,1354348800,1290034617,http://www.netflix.com/Movie/Up_the_Yangtze/70084172
|
95
|
+
Milton Glaser: To Inform and Delight,http://api.netflix.com/catalog/titles/movies/70119814,1291190400,1338534000,1290034055,http://www.netflix.com/Movie/Milton_Glaser_To_Inform_and_Delight/70119814
|
96
|
+
Blood Into Wine,http://api.netflix.com/catalog/titles/movies/70132337,1291190400,1338534000,1291053415,http://www.netflix.com/Movie/Blood_Into_Wine/70132337
|
97
|
+
Shut Up and Kiss Me,http://api.netflix.com/catalog/titles/movies/70140311,1291190400,1322726400,1287528634,http://www.netflix.com/Movie/Shut_Up_and_Kiss_Me/70140311
|
98
|
+
3 Américas,http://api.netflix.com/catalog/titles/movies/70128015,1291190400,1322726400,1288393805,http://www.netflix.com/Movie/3_Americas/70128015
|
99
|
+
Mo,http://api.netflix.com/catalog/titles/movies/70123078,1291190400,1322726400,1288396567,http://www.netflix.com/Movie/Mo/70123078
|
100
|
+
The Strawberry Shortcake Movie: Sky's the Limit,http://api.netflix.com/catalog/titles/movies/70121400,1291190400,1354348800,1288912337,http://www.netflix.com/Movie/The_Strawberry_Shortcake_Movie_Sky_s_the_Limit/70121400
|
101
|
+
Rocky IV,http://api.netflix.com/catalog/titles/movies/916061,1291190400,1293868800,1287004378,http://www.netflix.com/Movie/Rocky_IV/916061
|
102
|
+
Blind Spot,http://api.netflix.com/catalog/titles/movies/70122177,1291190400,1322726400,1288394029,http://www.netflix.com/Movie/Blind_Spot/70122177
|
103
|
+
The Bounty Hunter,http://api.netflix.com/catalog/titles/movies/70128696,1291190400,1321516800,1290557849,http://www.netflix.com/Movie/The_Bounty_Hunter/70128696
|
104
|
+
Collapse,http://api.netflix.com/catalog/titles/movies/70123600,1291190400,1338534000,1288396384,http://www.netflix.com/Movie/Collapse/70123600
|
105
|
+
Rumble in the Bronx,http://api.netflix.com/catalog/titles/movies/923574,1291190400,1306911600,1288026146,http://www.netflix.com/Movie/Rumble_in_the_Bronx/923574
|
106
|
+
Right to Exit: Kevorkian,http://api.netflix.com/catalog/titles/movies/70123281,1291190400,1322726400,1290034594,http://www.netflix.com/Movie/Right_to_Exit_Kevorkian/70123281
|
107
|
+
Twice Upon a Yesterday,http://api.netflix.com/catalog/titles/movies/21676106,1291190400,1306825200,1287004378,http://www.netflix.com/Movie/Twice_Upon_a_Yesterday/21676106
|
108
|
+
Running on Empty,http://api.netflix.com/catalog/titles/movies/924755,1291190400,1306911600,1279148746,http://www.netflix.com/Movie/Running_on_Empty/924755
|
109
|
+
The Crush,http://api.netflix.com/catalog/titles/movies/409583,1291190400,1306911600,1287084871,http://www.netflix.com/Movie/The_Crush/409583
|
110
|
+
Our City Dreams,http://api.netflix.com/catalog/titles/movies/70114084,1291190400,1354348800,1288128446,http://www.netflix.com/Movie/Our_City_Dreams/70114084
|
111
|
+
Rocky II,http://api.netflix.com/catalog/titles/movies/916043,1291190400,1293868800,1287004378,http://www.netflix.com/Movie/Rocky_II/916043
|
112
|
+
Dancing Across Borders,http://api.netflix.com/catalog/titles/movies/70119678,1291190400,1385884800,1290759166,http://www.netflix.com/Movie/Dancing_Across_Borders/70119678
|
113
|
+
The Hit,http://api.netflix.com/catalog/titles/movies/70116594,1291190400,1322726400,1288396695,http://www.netflix.com/Movie/The_Hit/70116594
|
114
|
+
Private,http://api.netflix.com/catalog/titles/movies/70140485,1291190400,1338534000,1290034257,http://www.netflix.com/Movie/Private/70140485
|
115
|
+
Who Is KK Downey?,http://api.netflix.com/catalog/titles/movies/70125479,1291190400,1322726400,1288396878,http://www.netflix.com/Movie/Who_Is_KK_Downey/70125479
|
116
|
+
Dolores Claiborne,http://api.netflix.com/catalog/titles/movies/451465,1291190400,1338534000,1290245274,http://www.netflix.com/Movie/Dolores_Claiborne/451465
|
117
|
+
Undercover Boss: Season 1,http://api.netflix.com/catalog/titles/series/70154507/seasons/70154507,1291190400,1322726400,1291112170,http://www.netflix.com/Movie/Undercover_Boss_Season_1/70154507
|
118
|
+
The Shining,http://api.netflix.com/catalog/titles/movies/959008,1291190400,1306911600,1288803329,http://www.netflix.com/Movie/The_Shining/959008
|
@@ -0,0 +1,123 @@
|
|
1
|
+
Received: by 10.213.2.204 with HTTP; Sun, 12 Dec 2010 05:39:40 -0800
|
2
|
+
Date: Sun, 12 Dec 2010 08:39:40 -0500
|
3
|
+
From: Daniel Choi <dhchoi@gmail.com>
|
4
|
+
Reply-To: dhchoi@gmail.com
|
5
|
+
To: Daniel Choi <dhchoi@gmail.com>
|
6
|
+
Message-ID: <AANLkTikyL=37OW+sSr550p_WmtYXGe49YmPrHOezjir8@mail.gmail.com>
|
7
|
+
Subject: attachment test
|
8
|
+
Mime-Version: 1.0
|
9
|
+
Content-Type: multipart/mixed;
|
10
|
+
boundary=00c09f8e5ea527c675049736b8df;
|
11
|
+
charset=UTF-8
|
12
|
+
Content-Transfer-Encoding: 7bit
|
13
|
+
Delivered-To: dhchoi@gmail.com
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
--00c09f8e5ea527c675049736b8df
|
18
|
+
Date: Sun, 12 Dec 2010 08:40:14 -0500
|
19
|
+
Mime-Version: 1.0
|
20
|
+
Content-Type: text/plain;
|
21
|
+
charset=ISO-8859-1
|
22
|
+
Content-Transfer-Encoding: 7bit
|
23
|
+
Content-ID: <4d04d0be5dbe4_2d7806f52a4668ca@spartan.local.mail>
|
24
|
+
|
25
|
+
see attached
|
26
|
+
|
27
|
+
--00c09f8e5ea527c675049736b8df
|
28
|
+
Date: Sun, 12 Dec 2010 08:40:14 -0500
|
29
|
+
Mime-Version: 1.0
|
30
|
+
Content-Type: image/png;
|
31
|
+
charset=UTF-8;
|
32
|
+
name=canada.png
|
33
|
+
Content-Transfer-Encoding: base64
|
34
|
+
Content-Disposition: attachment;
|
35
|
+
filename=canada.png
|
36
|
+
X-Attachment-Id: f_ghlze6ap0
|
37
|
+
Content-ID: <4d04d0be5f600_2d7806f52a46694b@spartan.local.mail>
|
38
|
+
|
39
|
+
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAJCAYAAAALpr0TAAAKRGlDQ1BJQ0Mg
|
40
|
+
UHJvZmlsZQAAeAGdlndUFNcXx9/MbC+0XZYiZem9twWkLr1IlSYKy+4CS1nW
|
41
|
+
ZRewN0QFIoqICFYkKGLAaCgSK6JYCAgW7AEJIkoMRhEVlczGHPX3Oyf5/U7e
|
42
|
+
H3c+8333nnfn3vvOGQAoASECYQ6sAEC2UCKO9PdmxsUnMPG9AAZEgAM2AHC4
|
43
|
+
uaLQKL9ogK5AXzYzF3WS8V8LAuD1LYBaAK5bBIQzmX/p/+9DkSsSSwCAwtEA
|
44
|
+
Ox4/l4tyIcpZ+RKRTJ9EmZ6SKWMYI2MxmiDKqjJO+8Tmf/p8Yk8Z87KFPNRH
|
45
|
+
lrOIl82TcRfKG/OkfJSREJSL8gT8fJRvoKyfJc0WoPwGZXo2n5MLAIYi0yV8
|
46
|
+
bjrK1ihTxNGRbJTnAkCgpH3FKV+xhF+A5gkAO0e0RCxIS5cwjbkmTBtnZxYz
|
47
|
+
gJ+fxZdILMI53EyOmMdk52SLOMIlAHz6ZlkUUJLVlokW2dHG2dHRwtYSLf/n
|
48
|
+
9Y+bn73+GWS9/eTxMuLPnkGMni/al9gvWk4tAKwptDZbvmgpOwFoWw+A6t0v
|
49
|
+
mv4+AOQLAWjt++p7GLJ5SZdIRC5WVvn5+ZYCPtdSVtDP6386fPb8e/jqPEvZ
|
50
|
+
eZ9rx/Thp3KkWRKmrKjcnKwcqZiZK+Jw+UyL/x7ifx34VVpf5WEeyU/li/lC
|
51
|
+
9KgYdMoEwjS03UKeQCLIETIFwr/r8L8M+yoHGX6aaxRodR8BPckSKPTRAfJr
|
52
|
+
D8DQyABJ3IPuQJ/7FkKMAbKbF6s99mnuUUb3/7T/YeAy9BXOFaQxZTI7MprJ
|
53
|
+
lYrzZIzeCZnBAhKQB3SgBrSAHjAGFsAWOAFX4Al8QRAIA9EgHiwCXJAOsoEY
|
54
|
+
5IPlYA0oAiVgC9gOqsFeUAcaQBM4BtrASXAOXARXwTVwE9wDQ2AUPAOT4DWY
|
55
|
+
gSAID1EhGqQGaUMGkBlkC7Egd8gXCoEioXgoGUqDhJAUWg6tg0qgcqga2g81
|
56
|
+
QN9DJ6Bz0GWoH7oDDUPj0O/QOxiBKTAd1oQNYSuYBXvBwXA0vBBOgxfDS+FC
|
57
|
+
eDNcBdfCR+BW+Bx8Fb4JD8HP4CkEIGSEgeggFggLYSNhSAKSioiRlUgxUonU
|
58
|
+
Ik1IB9KNXEeGkAnkLQaHoWGYGAuMKyYAMx/DxSzGrMSUYqoxhzCtmC7Mdcww
|
59
|
+
ZhLzEUvFamDNsC7YQGwcNg2bjy3CVmLrsS3YC9ib2FHsaxwOx8AZ4ZxwAbh4
|
60
|
+
XAZuGa4UtxvXjDuL68eN4KbweLwa3gzvhg/Dc/ASfBF+J/4I/gx+AD+Kf0Mg
|
61
|
+
E7QJtgQ/QgJBSFhLqCQcJpwmDBDGCDNEBaIB0YUYRuQRlxDLiHXEDmIfcZQ4
|
62
|
+
Q1IkGZHcSNGkDNIaUhWpiXSBdJ/0kkwm65KdyRFkAXk1uYp8lHyJPEx+S1Gi
|
63
|
+
mFLYlESKlLKZcpBylnKH8pJKpRpSPakJVAl1M7WBep76kPpGjiZnKRcox5Nb
|
64
|
+
JVcj1yo3IPdcnihvIO8lv0h+qXyl/HH5PvkJBaKCoQJbgaOwUqFG4YTCoMKU
|
65
|
+
Ik3RRjFMMVuxVPGw4mXFJ0p4JUMlXyWeUqHSAaXzSiM0hKZHY9O4tHW0OtoF
|
66
|
+
2igdRzeiB9Iz6CX07+i99EllJWV75RjlAuUa5VPKQwyEYcgIZGQxyhjHGLcY
|
67
|
+
71Q0VbxU+CqbVJpUBlSmVeeoeqryVYtVm1Vvqr5TY6r5qmWqbVVrU3ugjlE3
|
68
|
+
VY9Qz1ffo35BfWIOfY7rHO6c4jnH5tzVgDVMNSI1lmkc0OjRmNLU0vTXFGnu
|
69
|
+
1DyvOaHF0PLUytCq0DqtNa5N03bXFmhXaJ/RfspUZnoxs5hVzC7mpI6GToCO
|
70
|
+
VGe/Tq/OjK6R7nzdtbrNug/0SHosvVS9Cr1OvUl9bf1Q/eX6jfp3DYgGLIN0
|
71
|
+
gx0G3QbThkaGsYYbDNsMnxipGgUaLTVqNLpvTDX2MF5sXGt8wwRnwjLJNNlt
|
72
|
+
cs0UNnUwTTetMe0zg80czQRmu836zbHmzuZC81rzQQuKhZdFnkWjxbAlwzLE
|
73
|
+
cq1lm+VzK32rBKutVt1WH60drLOs66zv2SjZBNmstemw+d3W1JZrW2N7w45q
|
74
|
+
52e3yq7d7oW9mT3ffo/9bQeaQ6jDBodOhw+OTo5ixybHcSd9p2SnXU6DLDor
|
75
|
+
nFXKuuSMdfZ2XuV80vmti6OLxOWYy2+uFq6Zroddn8w1msufWzd3xE3XjeO2
|
76
|
+
323Ineme7L7PfchDx4PjUevxyFPPk+dZ7znmZeKV4XXE67m3tbfYu8V7mu3C
|
77
|
+
XsE+64P4+PsU+/T6KvnO9632fein65fm1+g36e/gv8z/bAA2IDhga8BgoGYg
|
78
|
+
N7AhcDLIKWhFUFcwJTgquDr4UYhpiDikIxQODQrdFnp/nsE84by2MBAWGLYt
|
79
|
+
7EG4Ufji8B8jcBHhETURjyNtIpdHdkfRopKiDke9jvaOLou+N994vnR+Z4x8
|
80
|
+
TGJMQ8x0rE9seexQnFXcirir8erxgvj2BHxCTEJ9wtQC3wXbF4wmOiQWJd5a
|
81
|
+
aLSwYOHlReqLshadSpJP4iQdT8YmxyYfTn7PCePUcqZSAlN2pUxy2dwd3Gc8
|
82
|
+
T14Fb5zvxi/nj6W6pZanPklzS9uWNp7ukV6ZPiFgC6oFLzICMvZmTGeGZR7M
|
83
|
+
nM2KzWrOJmQnZ58QKgkzhV05WjkFOf0iM1GRaGixy+LtiyfFweL6XCh3YW67
|
84
|
+
hI7+TPVIjaXrpcN57nk1eW/yY/KPFygWCAt6lpgu2bRkbKnf0m+XYZZxl3Uu
|
85
|
+
11m+ZvnwCq8V+1dCK1NWdq7SW1W4anS1/+pDa0hrMtf8tNZ6bfnaV+ti13UU
|
86
|
+
ahauLhxZ77++sUiuSFw0uMF1w96NmI2Cjb2b7Dbt3PSxmFd8pcS6pLLkfSm3
|
87
|
+
9Mo3Nt9UfTO7OXVzb5lj2Z4tuC3CLbe2emw9VK5YvrR8ZFvottYKZkVxxavt
|
88
|
+
SdsvV9pX7t1B2iHdMVQVUtW+U3/nlp3vq9Orb9Z41zTv0ti1adf0bt7ugT2e
|
89
|
+
e5r2au4t2ftun2Df7f3++1trDWsrD+AO5B14XBdT1/0t69uGevX6kvoPB4UH
|
90
|
+
hw5FHupqcGpoOKxxuKwRbpQ2jh9JPHLtO5/v2pssmvY3M5pLjoKj0qNPv0/+
|
91
|
+
/tax4GOdx1nHm34w+GFXC62luBVqXdI62ZbeNtQe395/IuhEZ4drR8uPlj8e
|
92
|
+
PKlzsuaU8qmy06TThadnzyw9M3VWdHbiXNq5kc6kznvn487f6Iro6r0QfOHS
|
93
|
+
Rb+L57u9us9ccrt08rLL5RNXWFfarjpebe1x6Gn5yeGnll7H3tY+p772a87X
|
94
|
+
Ovrn9p8e8Bg4d93n+sUbgTeu3px3s//W/Fu3BxMHh27zbj+5k3Xnxd28uzP3
|
95
|
+
Vt/H3i9+oPCg8qHGw9qfTX5uHnIcOjXsM9zzKOrRvRHuyLNfcn95P1r4mPq4
|
96
|
+
ckx7rOGJ7ZOT437j154ueDr6TPRsZqLoV8Vfdz03fv7Db56/9UzGTY6+EL+Y
|
97
|
+
/b30pdrLg6/sX3VOhU89fJ39ema6+I3am0NvWW+738W+G5vJf49/X/XB5EPH
|
98
|
+
x+CP92ezZ2f/AAOY8/xJsCmYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAzElE
|
99
|
+
QVQYGUVQSQ7CMAwcox44oYp7eQJ3+EX7A37EIziWPoQLEv9AqiqxSIWYGQfo
|
100
|
+
SE4cz3iS2JyAoM0M/nzwYLD5/F8TXWgJSNT38K6LBtQ1rCx/LJtSch9HGXs6
|
101
|
+
nz2ppGAeEEdNEdedTgCdfL2GbTd0ofvlAhwOQNOwttUz2NC2k9Oq8lQxfs7H
|
102
|
+
Noyz8Hr1934/kV9R1MgJhX5ryyWw2wH3GzC+8gcKvoo1Wyx0LUxqJREpwYch
|
103
|
+
D0GC2SxPgBPJ42ESkItyHZlH85f7AIMQkHCMQTeZAAAAAElFTkSuQmCC
|
104
|
+
|
105
|
+
|
106
|
+
--00c09f8e5ea527c675049736b8df
|
107
|
+
Date: Sun, 12 Dec 2010 08:40:14 -0500
|
108
|
+
Mime-Version: 1.0
|
109
|
+
Content-Type: image/gif;
|
110
|
+
charset=UTF-8;
|
111
|
+
name=arrow_right.gif
|
112
|
+
Content-Transfer-Encoding: base64
|
113
|
+
Content-Disposition: attachment;
|
114
|
+
filename=arrow_right.gif
|
115
|
+
X-Attachment-Id: f_ghlzeem51
|
116
|
+
Content-ID: <4d04d0be60a17_2d7806f52a46709b@spartan.local.mail>
|
117
|
+
|
118
|
+
R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQA
|
119
|
+
LAAAAAALABcAAAMrCLTcoM29yN6k9socs91e5X3EyJloipYrO4ohTMqA0Fn2
|
120
|
+
XVNswJe+H+SXAAA7
|
121
|
+
|
122
|
+
|
123
|
+
--00c09f8e5ea527c675049736b8df--
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
describe MessageFormatter do
|
5
|
+
describe "message with email addresses along with names" do
|
6
|
+
before do
|
7
|
+
@raw = File.read(File.expand_path('../fixtures/google-affiliate.eml', __FILE__))
|
8
|
+
@mail = Mail.new(@raw)
|
9
|
+
@formatter = MessageFormatter.new(@mail)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should extract name along with email address" do
|
13
|
+
expected = '"Google Affiliate Network" <affiliatenetwork@google.com>'
|
14
|
+
@formatter.extract_headers['from'].must_equal 'Google Affiliate Network <affiliatenetwork@google.com>'
|
15
|
+
@formatter.extract_headers['to'].must_match 'Dan Choi <dhchoi@gmail.com>'
|
16
|
+
@formatter.extract_headers['cc'].must_match 'Steve Jobs <steve@apple.com>'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "message has a text body but no Content-Type" do
|
21
|
+
before do
|
22
|
+
@raw = File.read(File.expand_path('../fixtures/textbody-nocontenttype.eml', __FILE__))
|
23
|
+
@mail = Mail.new(@raw)
|
24
|
+
@formatter = MessageFormatter.new(@mail)
|
25
|
+
end
|
26
|
+
it "should return the text body" do
|
27
|
+
@formatter.process_body.wont_be_nil
|
28
|
+
@formatter.process_body.must_match /Friday the 13th/
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "when message has only an HTML body" do
|
33
|
+
before do
|
34
|
+
@raw = File.read(File.expand_path('../fixtures/htmlbody.eml', __FILE__))
|
35
|
+
@mail = Mail.new(@raw)
|
36
|
+
@formatter = MessageFormatter.new(@mail)
|
37
|
+
end
|
38
|
+
it "should turn the body into readable text" do
|
39
|
+
@formatter.process_body.must_match %r{\n Web 1 new result for instantwatcher.com netflix}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "euc-kr encoded header" do
|
44
|
+
before do
|
45
|
+
@raw = File.read(File.expand_path('../fixtures/euc-kr-header.eml', __FILE__))
|
46
|
+
@mail = Mail.new(@raw)
|
47
|
+
@formatter = MessageFormatter.new(@mail)
|
48
|
+
end
|
49
|
+
it "should know its encoding" do
|
50
|
+
@mail.header.charset.must_equal 'euc-kr'
|
51
|
+
end
|
52
|
+
it "should format the subject line in UTF-8" do
|
53
|
+
match = "독특닷컴과"
|
54
|
+
assert_match match, @formatter.extract_headers['subject']
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "when message has only an HTML body and no encoding info" do
|
59
|
+
before do
|
60
|
+
@raw = File.read(File.expand_path('../fixtures/moleskine-html.eml', __FILE__))
|
61
|
+
@mail = Mail.new(@raw)
|
62
|
+
@formatter = MessageFormatter.new(@mail)
|
63
|
+
end
|
64
|
+
it "should process body" do
|
65
|
+
@formatter.process_body.wont_be_nil
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe "when message has two attachments" do
|
70
|
+
before do
|
71
|
+
@raw = read_fixture('with-attachments.eml')
|
72
|
+
@mail = Mail.new(@raw)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should extract two attachments" do
|
76
|
+
attachments = @mail.attachments
|
77
|
+
assert_equal 2, attachments.size
|
78
|
+
assert_equal ['image/png', 'image/gif'], attachments.map(&:mime_type)
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|