eml2html 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.rspec +2 -0
- data/Guardfile +5 -0
- data/bin/eml2html +0 -0
- data/eml2html.gemspec +6 -0
- data/lib/eml2html/converter.rb +16 -11
- data/lib/eml2html/version.rb +1 -1
- data/spec/file_helper.rb +5 -0
- data/spec/fixtures/image.png +0 -0
- data/spec/fixtures/test.eml +234 -0
- data/spec/lib/eml2html/converter_spec.rb +35 -0
- data/spec/spec_helper.rb +93 -0
- metadata +87 -10
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZDJhYzlkMGEzMTUxNTk2ZjRjZThkYTczYjVkOWIzOGVmNmE1NTE5Yg==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 04bd88a978a506474d0edbcd15a40d9478496aae
|
4
|
+
data.tar.gz: 21eb52a38f946c0f219b257f06ad1c36e881d142
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
OTM0YTViNzUyOTFjODBiZjUzYzEyZTU0NDg1OTFhYjFmYTQwMTEyOGRkMzFi
|
11
|
-
YTU3NGNhNTM1YTRjNmFiYjRkNTE4N2FiZjNhN2M2OTA4MTRlNWM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MDI3ZjkzNzMwMGQ4YTNlYzFmMDRhZTU5YzI4NDc5ZDM4NWY5ZGYyZjEyOTVh
|
14
|
-
YzcwOTIyNDg2Y2I3Y2M3MDI0ZDBmMDIzNTc3YTBlOGM0NWY0OTFiNjIzOTFm
|
15
|
-
MjA2NjM0YjBhZDI2YzQ1ODY0MmY2ZDkzZjNhOWY1NTI5NTNjMDk=
|
6
|
+
metadata.gz: 2138f2f9723da3307c5f3789e5eb8fb1d16eda39e5d3ae1e70dfefa9333c39b6f2abbad252968db390fa47f919654e02cc99a4e80c12085f7251c71f8b58a2c0
|
7
|
+
data.tar.gz: 94fe427703da8455f9bfd485488e482025d7021744465db6aa8bbef572146853fac9de3d74385bceaf43e212eb70209ea5135fde1071056007ca8c36026010e1
|
data/.rspec
ADDED
data/Guardfile
ADDED
data/bin/eml2html
CHANGED
File without changes
|
data/eml2html.gemspec
CHANGED
@@ -19,4 +19,10 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.add_development_dependency "bundler", "~> 1.3"
|
21
21
|
spec.add_development_dependency "rake"
|
22
|
+
spec.add_development_dependency "rspec"
|
23
|
+
spec.add_development_dependency "guard"
|
24
|
+
spec.add_development_dependency "guard-rspec"
|
25
|
+
|
26
|
+
spec.add_dependency "mail"
|
27
|
+
spec.add_dependency "rubyzip"
|
22
28
|
end
|
data/lib/eml2html/converter.rb
CHANGED
@@ -23,19 +23,17 @@ module Eml2Html
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def save_txt
|
26
|
-
print "Saving #{filename(:txt)}..."
|
27
26
|
File.write(filename(:txt), text_body)
|
28
|
-
puts "done."
|
29
27
|
end
|
30
28
|
|
31
29
|
def save_html
|
32
|
-
print "Saving #{filename(:html)}..."
|
33
30
|
File.write(filename(:html), html_body)
|
34
|
-
|
31
|
+
each_attachment do |name, content|
|
32
|
+
File.write(name, content)
|
33
|
+
end
|
35
34
|
end
|
36
35
|
|
37
36
|
def save_zip(options = {})
|
38
|
-
print "Saving #{filename(:zip)}..."
|
39
37
|
Zip::File.open(filename(:zip), Zip::File::CREATE) do |zipfile|
|
40
38
|
if options[:include_html]
|
41
39
|
zipfile.get_output_stream(filename(:html)) do |out|
|
@@ -55,7 +53,6 @@ module Eml2Html
|
|
55
53
|
end
|
56
54
|
end
|
57
55
|
end
|
58
|
-
puts "done."
|
59
56
|
end
|
60
57
|
|
61
58
|
private
|
@@ -79,15 +76,23 @@ module Eml2Html
|
|
79
76
|
end
|
80
77
|
|
81
78
|
def read_attachments
|
82
|
-
@attachments = @message.parts.
|
83
|
-
|
84
|
-
|
85
|
-
|
79
|
+
@attachments = @message.parts.flat_map do |part|
|
80
|
+
if part.multipart?
|
81
|
+
part.parts.map do |part|
|
82
|
+
name = part['Content-Type'].filename
|
83
|
+
next unless name
|
84
|
+
Attachment.new(part.cid, name, part.body.to_s)
|
85
|
+
end
|
86
|
+
else
|
87
|
+
name = part['Content-Type'].filename
|
88
|
+
next unless name
|
89
|
+
Attachment.new(part.cid, name, part.body.to_s)
|
90
|
+
end
|
86
91
|
end.compact
|
87
92
|
end
|
88
93
|
|
89
94
|
def replace_images_src(html)
|
90
|
-
html.gsub(/(?<=src=['"])
|
95
|
+
html.gsub(/(?<=src=['"])cid:[^'"]+(?=['"])/) do |match|
|
91
96
|
cid = match.sub(/^cid:/, '')
|
92
97
|
@attachments.find{|a| a.cid == cid}.name
|
93
98
|
end
|
data/lib/eml2html/version.rb
CHANGED
data/spec/file_helper.rb
ADDED
Binary file
|
@@ -0,0 +1,234 @@
|
|
1
|
+
|
2
|
+
Return-Path: <bartek.bulat@gmail.com>
|
3
|
+
Received: from [192.168.1.109] (auh251.neoplus.adsl.tpnet.pl. [83.27.15.251])
|
4
|
+
by mx.google.com with ESMTPSA id ge8sm11020637wjc.32.2015.03.29.05.22.18
|
5
|
+
for <test@example.com>
|
6
|
+
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
|
7
|
+
Sun, 29 Mar 2015 05:22:19 -0700 (PDT)
|
8
|
+
Message-ID: <5517EE79.4020202@gmail.com>
|
9
|
+
Date: Sun, 29 Mar 2015 14:22:17 +0200
|
10
|
+
From: =?UTF-8?B?QmFydMWCb21pZWogQnXFgmF0?= <bartek.bulat@gmail.com>
|
11
|
+
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
|
12
|
+
MIME-Version: 1.0
|
13
|
+
To: test@example.com
|
14
|
+
Subject: Test
|
15
|
+
Content-Type: multipart/alternative;
|
16
|
+
boundary="------------090103020906070402090204"
|
17
|
+
|
18
|
+
This is a multi-part message in MIME format.
|
19
|
+
--------------090103020906070402090204
|
20
|
+
Content-Type: text/plain; charset=utf-8; format=flowed
|
21
|
+
Content-Transfer-Encoding: 7bit
|
22
|
+
|
23
|
+
|
24
|
+
Test email
|
25
|
+
|
26
|
+
Content
|
27
|
+
|
28
|
+
|
29
|
+
--------------090103020906070402090204
|
30
|
+
Content-Type: multipart/related;
|
31
|
+
boundary="------------010108060705050006080903"
|
32
|
+
|
33
|
+
|
34
|
+
--------------010108060705050006080903
|
35
|
+
Content-Type: text/html; charset=utf-8
|
36
|
+
Content-Transfer-Encoding: 7bit
|
37
|
+
|
38
|
+
<html>
|
39
|
+
<head>
|
40
|
+
|
41
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
42
|
+
<title>Test</title>
|
43
|
+
</head>
|
44
|
+
<body bgcolor="#FFFFFF" text="#000000">
|
45
|
+
<h1>Test email</h1>
|
46
|
+
<p>Content<br>
|
47
|
+
</p>
|
48
|
+
<img alt="" src="cid:part1.07080309.07070602@gmail.com"
|
49
|
+
moz-do-not-send="false" width="256" height="256">
|
50
|
+
</body>
|
51
|
+
</html>
|
52
|
+
|
53
|
+
--------------010108060705050006080903
|
54
|
+
Content-Type: image/png;
|
55
|
+
name="image.png"
|
56
|
+
Content-Transfer-Encoding: base64
|
57
|
+
Content-ID: <part1.07080309.07070602@gmail.com>
|
58
|
+
Content-Disposition: inline;
|
59
|
+
filename="image.png"
|
60
|
+
|
61
|
+
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
|
231
|
+
hPD5zf8HVLpX3k1ZpoQAAAAASUVORK5CYII=
|
232
|
+
--------------010108060705050006080903--
|
233
|
+
|
234
|
+
--------------090103020906070402090204--
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'eml2html/converter'
|
2
|
+
|
3
|
+
RSpec.describe Eml2Html::Converter do
|
4
|
+
around(:each) do |example|
|
5
|
+
Dir.mktmpdir do |dir|
|
6
|
+
FileUtils.cd(dir) do
|
7
|
+
example.run
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
let(:subject) { Eml2Html::Converter.new fixture_path('test.eml') }
|
13
|
+
|
14
|
+
context "save_txt" do
|
15
|
+
it "creates file" do
|
16
|
+
subject.save_txt
|
17
|
+
expect(File).to exist('test.txt')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "save_html" do
|
22
|
+
before { subject.save_html }
|
23
|
+
|
24
|
+
it { expect(File).to exist('test.html') }
|
25
|
+
it { expect(File).to exist('image.png') }
|
26
|
+
it { expect(FileUtils).to satisfy { |f| f.identical?('image.png', fixture_path('image.png')) } }
|
27
|
+
end
|
28
|
+
|
29
|
+
context "save_zip" do
|
30
|
+
it "creates files" do
|
31
|
+
subject.save_zip
|
32
|
+
expect(File).to exist('test.zip')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
require_relative './file_helper'
|
2
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
3
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
4
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause
|
5
|
+
# this file to always be loaded, without a need to explicitly require it in any
|
6
|
+
# files.
|
7
|
+
#
|
8
|
+
# Given that it is always loaded, you are encouraged to keep this file as
|
9
|
+
# light-weight as possible. Requiring heavyweight dependencies from this file
|
10
|
+
# will add to the boot time of your test suite on EVERY test run, even for an
|
11
|
+
# individual file that may not need all of that loaded. Instead, consider making
|
12
|
+
# a separate helper file that requires the additional dependencies and performs
|
13
|
+
# the additional setup, and require it from the spec files that actually need
|
14
|
+
# it.
|
15
|
+
#
|
16
|
+
# The `.rspec` file also contains a few flags that are not defaults but that
|
17
|
+
# users commonly want.
|
18
|
+
#
|
19
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
20
|
+
RSpec.configure do |config|
|
21
|
+
config.include FileHelper
|
22
|
+
# rspec-expectations config goes here. You can use an alternate
|
23
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
24
|
+
# assertions if you prefer.
|
25
|
+
config.expect_with :rspec do |expectations|
|
26
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
27
|
+
# and `failure_message` of custom matchers include text for helper methods
|
28
|
+
# defined using `chain`, e.g.:
|
29
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
30
|
+
# # => "be bigger than 2 and smaller than 4"
|
31
|
+
# ...rather than:
|
32
|
+
# # => "be bigger than 2"
|
33
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
34
|
+
end
|
35
|
+
|
36
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
37
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
38
|
+
config.mock_with :rspec do |mocks|
|
39
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
40
|
+
# a real object. This is generally recommended, and will default to
|
41
|
+
# `true` in RSpec 4.
|
42
|
+
mocks.verify_partial_doubles = true
|
43
|
+
end
|
44
|
+
|
45
|
+
# The settings below are suggested to provide a good initial experience
|
46
|
+
# with RSpec, but feel free to customize to your heart's content.
|
47
|
+
=begin
|
48
|
+
# These two settings work together to allow you to limit a spec run
|
49
|
+
# to individual examples or groups you care about by tagging them with
|
50
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
51
|
+
# get run.
|
52
|
+
config.filter_run :focus
|
53
|
+
config.run_all_when_everything_filtered = true
|
54
|
+
|
55
|
+
# Limits the available syntax to the non-monkey patched syntax that is
|
56
|
+
# recommended. For more details, see:
|
57
|
+
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
58
|
+
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
59
|
+
# - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
|
60
|
+
config.disable_monkey_patching!
|
61
|
+
|
62
|
+
# This setting enables warnings. It's recommended, but in some cases may
|
63
|
+
# be too noisy due to issues in dependencies.
|
64
|
+
config.warnings = true
|
65
|
+
|
66
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
67
|
+
# file, and it's useful to allow more verbose output when running an
|
68
|
+
# individual spec file.
|
69
|
+
if config.files_to_run.one?
|
70
|
+
# Use the documentation formatter for detailed output,
|
71
|
+
# unless a formatter has already been configured
|
72
|
+
# (e.g. via a command-line flag).
|
73
|
+
config.default_formatter = 'doc'
|
74
|
+
end
|
75
|
+
|
76
|
+
# Print the 10 slowest examples and example groups at the
|
77
|
+
# end of the spec run, to help surface which specs are running
|
78
|
+
# particularly slow.
|
79
|
+
config.profile_examples = 10
|
80
|
+
|
81
|
+
# Run specs in random order to surface order dependencies. If you find an
|
82
|
+
# order dependency and want to debug it, you can fix the order by providing
|
83
|
+
# the seed, which is printed after each run.
|
84
|
+
# --seed 1234
|
85
|
+
config.order = :random
|
86
|
+
|
87
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
88
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
89
|
+
# test failures related to randomization by passing the same `--seed` value
|
90
|
+
# as the one that triggered the failure.
|
91
|
+
Kernel.srand config.seed
|
92
|
+
=end
|
93
|
+
end
|
metadata
CHANGED
@@ -1,41 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eml2html
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bartłomiej Bułat
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: mail
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubyzip
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
39
109
|
- !ruby/object:Gem::Version
|
40
110
|
version: '0'
|
41
111
|
description: eml2html executable for unpacking .eml files into html and attachments
|
@@ -46,8 +116,10 @@ executables:
|
|
46
116
|
extensions: []
|
47
117
|
extra_rdoc_files: []
|
48
118
|
files:
|
49
|
-
- .gitignore
|
119
|
+
- ".gitignore"
|
120
|
+
- ".rspec"
|
50
121
|
- Gemfile
|
122
|
+
- Guardfile
|
51
123
|
- LICENSE
|
52
124
|
- LICENSE.txt
|
53
125
|
- README.md
|
@@ -57,6 +129,11 @@ files:
|
|
57
129
|
- lib/eml2html.rb
|
58
130
|
- lib/eml2html/converter.rb
|
59
131
|
- lib/eml2html/version.rb
|
132
|
+
- spec/file_helper.rb
|
133
|
+
- spec/fixtures/image.png
|
134
|
+
- spec/fixtures/test.eml
|
135
|
+
- spec/lib/eml2html/converter_spec.rb
|
136
|
+
- spec/spec_helper.rb
|
60
137
|
homepage: https://github.com/barthez/eml2html
|
61
138
|
licenses:
|
62
139
|
- MIT
|
@@ -67,17 +144,17 @@ require_paths:
|
|
67
144
|
- lib
|
68
145
|
required_ruby_version: !ruby/object:Gem::Requirement
|
69
146
|
requirements:
|
70
|
-
- -
|
147
|
+
- - ">="
|
71
148
|
- !ruby/object:Gem::Version
|
72
149
|
version: '0'
|
73
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
151
|
requirements:
|
75
|
-
- -
|
152
|
+
- - ">="
|
76
153
|
- !ruby/object:Gem::Version
|
77
154
|
version: '0'
|
78
155
|
requirements: []
|
79
156
|
rubyforge_project:
|
80
|
-
rubygems_version: 2.4.
|
157
|
+
rubygems_version: 2.4.5
|
81
158
|
signing_key:
|
82
159
|
specification_version: 4
|
83
160
|
summary: eml2html executable for unpacking .eml files into html and attachments
|