MsgToEml: различия между версиями
(Новая страница: «Здесь скоро будет инструкция <!-- Конвертация в eml (не тестировал, так как нет в наличии фай...») |
мНет описания правки |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
==Конвертирование почтового сообщения из .msg (формат MS Outlook) в .eml (стандартный формат MIME RFC 822)== | |||
1. Установка необходимого ПО | |||
apt-get install {{pkg|ruby-tools}} | |||
gem install ruby-msg | |||
2. Собственно выполните следующую команду: | |||
mapitool -i /path/to/file.msg | |||
3. После этого в том же каталоге создастся необходимый file.eml | |||
---- | |||
*Если во время конвертации проявляется ошибка (и в рез-те eml файл пустой): | |||
/usr/lib/ruby/gems/2.0.0/gems/ruby-msg-1.5.2/lib/mapi/mime.rb:109:in `join': | |||
incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError) | |||
... | |||
*то нужно поправить 108 строчку в файле {{path|/usr/lib/ruby/gems/<version>/gems/ruby-msg-<version>/lib/mapi/mime.rb}} | |||
<source lang="diff">diff --git a/mime.rb b/mime.rb | |||
index c738aa3..bc819c0 100644 | |||
--- a/mime.rb | |||
+++ b/mime.rb | |||
@@ -105,7 +105,7 @@ module Mapi | |||
opts = {:boundary_counter => 0}.merge opts | |||
if multipart? | |||
boundary = Mime.make_boundary opts[:boundary_counter] += 1, self | |||
- @body = [preamble, parts.map { |part| "\r\n" + part.to_s(opts) + "\r\n" }, "--\r\n" + epilogue]. | |||
+ @body = [preamble, parts.map { |part| "\r\n" + part.to_s(opts).force_encoding(Encoding::UTF_8) + "\r\n" }, "--\r\n" + epilogue]. | |||
flatten.join("\r\n--" + boundary) | |||
content_type, attrs = Mime.split_header @headers['Content-Type'][0] | |||
attrs['boundary'] = boundary</source> | |||
[[Категория:HOWTO]] | [[Категория:HOWTO]] | ||
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 09:29, 29 марта 2018
Конвертирование почтового сообщения из .msg (формат MS Outlook) в .eml (стандартный формат MIME RFC 822)
1. Установка необходимого ПО
apt-get install ruby-tools
gem install ruby-msg
2. Собственно выполните следующую команду:
mapitool -i /path/to/file.msg
3. После этого в том же каталоге создастся необходимый file.eml
- Если во время конвертации проявляется ошибка (и в рез-те eml файл пустой):
/usr/lib/ruby/gems/2.0.0/gems/ruby-msg-1.5.2/lib/mapi/mime.rb:109:in `join': incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError) ...
- то нужно поправить 108 строчку в файле /usr/lib/ruby/gems/<version>/gems/ruby-msg-<version>/lib/mapi/mime.rb
diff --git a/mime.rb b/mime.rb
index c738aa3..bc819c0 100644
--- a/mime.rb
+++ b/mime.rb
@@ -105,7 +105,7 @@ module Mapi
opts = {:boundary_counter => 0}.merge opts
if multipart?
boundary = Mime.make_boundary opts[:boundary_counter] += 1, self
- @body = [preamble, parts.map { |part| "\r\n" + part.to_s(opts) + "\r\n" }, "--\r\n" + epilogue].
+ @body = [preamble, parts.map { |part| "\r\n" + part.to_s(opts).force_encoding(Encoding::UTF_8) + "\r\n" }, "--\r\n" + epilogue].
flatten.join("\r\n--" + boundary)
content_type, attrs = Mime.split_header @headers['Content-Type'][0]
attrs['boundary'] = boundary