Как раскодировать письмо?
Электронная почта может передавать только текстовую информацию. Поэтому если нужно переслать файл, содержащий что-либо, кроме символов букв и цифр (файл базы данных, файл с графическим изображением, упакованный архив, исполняемый файл), его нужно перекодировать в текстовую форму. Для этого используются различные способы кодировки. Рассмотрим наиболее часто встречающиеся. Для каждой кодировки попытаемся ответить на вопросы:
- КАК ОПОЗНАТЬ ту или иную кодировку?
- ЧТО ДЕЛАТЬ с письмом, чтобы прочитать текст (данные)?
- ГДЕ ВЗЯТЬ необходимые программы?
Суть проблемы:

Посмотреть на форуме.

Принцип кодирования в UUENCODE и BASE64

При необходимости послать по электронной почте нетекстовый файл его сначала нужно преобразовать в закодированную форму, которая не запутала бы Ваш почтовый сервер или то программное обеспечение электронной почты, которое работает у получателя. Существуют несколько способов такого преобразования, наиболее известны из них два. Ранее использовался UUENCODE, теперь стандартом является BASE64. В большинстве случаев нужно пользоваться вторым способом, особенно если для передачи сообщение используется протокол MIME (Multipurpose Internet Mail Extensions). Однако, некоторые старые приложения электронной почты не понимают MIME или Base 64, поэтому здесь приведены оба способа.

Основополагающая идея обоих методов состоит в преобразовании двоичных файлов в ASCII файл, который может быть нормально передан и обработан сервером электронной почты. Это делается путем разбивки исходного файла на группы из 3 байтов, и последующего деления каждой трехбайтной группы на 4 группы по 6 бит (в трёх байтах 24 бита). Эти 6 битов (с их помощью можно представить любое число от 0 до 63) затем отображаются в конкретный диапазон печатаемых символов ASCII и затем вновь собираются в строку ASCII, которую можно включить в сообщение электронной почты. У получателя сообщения выполняется обратный процесс, в ходе которого воссоздается исходный файл.

Для кодирования в Base64 используются символы:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

для Uuencode используются следующие символы (будем называть эту строку uu-строкой):
`!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_

Различия между Base64 и Uuencode обусловлены способом форматирования закодированных файлов.

При UU-кодировании из файла читаются группы по 45 байт, они кодируются описанным выше способом - каждые три байта превращаются в 4, каждый байт из этих четырех - номер символа в uu-строке, причём ноль соответствует первому символу. В начале результирующей строки должен быть символ, номер которого в uu-строке совпадает с количеством байт в исходной группе.
То есть, если была прочитана группа 45 байт, то в результирующей строке сначала стоит символ 'M' (его номер 46, но нумерация в uu-строке идет с нуля). Если же была прочитана группа из меньшего количества байт, например из 5 байт (это означает, что кодируемый файл закончился, и из требуемых 45 в файле остались непрочитанными только 5 байт, например в случае, когда размер файла 50 байт), то первым должен стоять символ '%' (его номер 5, если начинать считать с нуля). Если количество прочитанных байт меньше 45 и не разбивается на группы по три байта, то последняя группа доукомплектовывается нулями.
После первого символа идет закодированная строка (60 символов, если было прочитано 45 байт), за ними должен идти признак конца строки. В принципе достаточно '\n' но можно и "\r\n". Таким образом, исходный файл был закодирован. Полученные строки можно отправлять.
Итак, при кодировании в Uuencode нужно форматировать результирующие данные в строки по 61 байт, первый из которых обозначает количество байт в исходной строке.

Теперь немного о правилах отсылки вложений, закодированных в Uuencode. Прямо в теле письма нужно написать "begin 600 filename.ext", далее идет сам закодированный файл. Затем, после последней строки, с новой строки символ '`' и с новой строки "end". Например:

text
begin 644 notepad.exe
Codeddata
`
end

продолжение текста письма.
(Экспериментально проверено, что можно также писать begin 600 filename)

Теперь о кодировании в Base64. При кодировании в Base64 требуется форматировать закодированные данные в строки по 76 символов. Для реализации этого удобно читать по 57 байт, кодировать их в строку 76 символов. Самое интересное, как всегда, это последняя строка. Каждая группа из 4 символов в закодированной строке соответствует 3 байтам. Исключение составляют последние 4 символа. Они могут соответствовать 1, 2 или 3-м байтам. Нужно указать, сколько байтов закодировано. При uu-кодировании для этого использовался первый символ строки, но он же необоснованно применялся в начале каждой полной строки. При кодировании Base64 применяется следующий подход:
если последние 4 символа соответствуют 2 байтам, то строку нужно завершить одним знаком '=',
если они соответствуют одному исходному, то двумя знаками '=',
если трем байтам, то ни одного знака '=',
то есть, в последней группе из 4 символов последние два могут быть знаками '=', или последний символ может быть знаком '='. Для вычисления количества знаков '=', зная размер исходного файла, можно использовать такую формулу pad=(3-len%3)%3.

Для отправки писем с вложениями, закодированными Base64 всегда используется протокол MIME.

В спецификации MIME описывается, как в заголовке сообщения передать информацию о кодировке самого сообщения (его тела). Для этого используются три строчки заголовка примерно следующего вида:

MIME-Version: 1.0
Content-Type: text/plain; charset=KOI8-R
Content-Transfer-Encoding: 8bit
Здесь Content-Type описывает, что передается - text/plain (чистый текст, для письма в HTML будет стоять text/html), определено также несколько мультимедийных типов, charset (от character set) - указатель на языковую кодировку, а "KOI8-R" - стандартизованное обозначение кодировки.
Content-Transfer-Encoding содержит обозначение транспортной кодировки: 8bit означает, что никакого дополнительного кодирования не производится; Base64 - перекодировка в 7-битный, но нечитаемый код, часто в описаниях называемая просто кодировкой MIME; Quoted-Printabl - перекодировка 8-битных символов (не трогающая большинство 7-битных) в выражения типа '=С1', где 'С1' - шестнадцатеричный код символа. При таком способе чисто английские тексты или английские вкрапления остаются в читаемом виде.

В многосекционных сообщениях (например, с приложенными файлами - attachments) тип сообщения обозначается примерно таким образом:
Content-Type: multipart/mixed; boundary="---- =_NextPart_000_01BC0856.97200900"
Каждая из секций сообщения (разделенных строчками boundary) содержит при этом свои строчки с Content-Type и Content-Transfer-Encoding.

Описанная схема, стандартизуя способы передачи национальных символов и двоичных файлов в теле письма, не затрагивает их заголовков, где тоже могут быть национальные символы - в поле Subject (тема) или в полях From, To (в пояснениях к адресам). Эта проблема решается там, где требуется кодировать 8-битные заголовки и вставлять в них "микрообозначения" кодировки - "Q" для Quoted-Printable и "B" для Base64 примерно следующим образом:
Subject: =?Windows-1251?Q?RE=3A_A_=E2=EE=F2_=FD=F2=EE_=FF_=EF=E8=F8=F3_=EF?=

или
Subject: =?koi8-r?B?7sXS18nby8kg28HM0dQ=?=
Нельзя не отметить, что и тот, и другой вариант выглядят равно нечитаемыми, и что вообще требования MIME к передаче национальных - в частности русских - символов в электронных сообщениях не очень сочетаются с идеей "чтобы все было попросту и читалось глазами".
Кодировка UUENCODE

UUENCODE - Способ кодировки электронной почты, когда каждые три бита, "размазываются" по четырем. Программа WinZip умеет раскодировать такие файлы.

Если документ находится в одном письме.
КАК ОПОЗНАТЬ:
Закодированный текст начинается строкой "begin имя_файла" и оканчивается словом "end":
begin image.gif
M4$L#!!0````(`,-*AQ[B,JU,'R$``(Q*```#````:7)CS7Q9<QQ'DN8SXU<$
MBVVF*DY5%@Z"1W4W130)2F@2()M`ZYC>MK:HS*BJ9&5FE#(R42C]NH6,L!Z.
M@F_5EQIH+_UF:>FVW\D)\;9XH$A^<@>?09+669P]/@-?6F%4%)->MSN=3BNQ
M=D<$*2=`R%U>KBL._-<\<`_^/WUBW2?F\[(=_ASAGO'+G0.&:63<08'_I`3.
.....
M,%!QWJ'P@M;>F=CE8-23]QZVY>?[;?D9!;O?&63UERXMPK">W/^\+3]]W);;
M<=XOK1#_%U!+`0(4`Q0````(`,-*AQ[B,JU,'R$``(Q*```#``````````$`
A``"D@0````!I<F-02P4&``````$``0`Q````0"$`````
`
end

КАК РАСКОДИРОВАТЬ:
Если Вы пользуетесь программой dMail, перейдите в меню (клавиша F2), затем выбрать пункт меню "Обработка->Извлечь данные". В текущем каталоге будет создан файл с именем, которое указано в строке "begin...".

Или попробуйте раскодировать письмо с помощью программы uudecode.exe - запишите текст письма в отдельный файл, например, text.uue, и в среде MSDOS наберите команду:
uudecode.exe text.uue
P.S. Имя файла в строке "begin" может не соответствовать правилам MSDOS, например, anderson.software_piracy.ps.Z (в MSDOS имя файла не более 8 символов и только одна точка). В этом случае нужно отредактировать письмо - изменить строку "begin":
begin anderson.software_piracy.ps.Z замените на begin anderson.z

Если документ состоит из нескольких частей.
КАК ОПОЗНАТЬ:
Документ находится в нескольких письмах. Первое письмо начинается словами "begin имя_файла". Ряд программ добавляет также строки с указанием номера секции и контрольные суммы. Некоторые почтовые программы при передаче MIME-сообщений обозначают эту кодировку как "X-UUEncode". Существует вариант этой кодировки обозначаемый "XXENCODE":
begin image.gif
M4$L#!!0````(`,-*AQ[B,JU,'R$``(Q*```#````:7)CS7Q9<QQ'DN8SXU<$
MBVVF*DY5%@Z"1W4W130)2F@2()M`ZYC>MK:HS*BJ9&5FE#(R42C]NH6,L!Z.
M@F_5EQIH+_UF:>FVW\D)\;9XH$A^<@>?09+669P]/@-?6F%4%)->MSN=3BNQ
M=D<$*2=`R%U>KBL._-<\<`_^/WUBW2?F\[(=_ASAGO'+G0.&:63<08'_I`3.
.....

Вторая и последующие промежуточные части файла могут не иметь ни слова "begin" в начале, ни слова "end" в конце. Последнее письмо заканчивается словом "end":
.....
M,%!QWJ'P@M;>F=CE8-23]QZVY>?[;?D9!;O?&63UERXMPK">W/^\+3]]W);;
M<=XOK1#_%U!+`0(4`Q0````(`,-*AQ[B,JU,'R$``(Q*```#``````````$`
A``"D@0````!I<F-02P4&``````$``0`Q````0"$`````
`
end

Иногда в конце каждой части указывается контрольная сумма и размер части:
sum -r/size 27951/6200 section (from first to last encoded line)

А в последней части - контрольная сумма всего документа: .....
M,%!QWJ'P@M;>F=CE8-23]QZVY>?[;?D9!;O?&63UERXMPK">W/^\+3]]W);;
M<=XOK1#_%U!+`0(4`Q0````(`,-*AQ[B,JU,'R$``(Q*```#``````````$`
A``"D@0````!I<F-02P4&``````$``0`Q````0"$`````
`
end
sum -r/size 48886/2672 section (from first encoded line to "end")
sum -r/size 25804/24433 entire input file

КАК РАСКОДИРОВАТЬ:
Если Вы пользуетесь программами BMail или dMail отсортируйте, включив сортировку по дате (при этом части будут расположены по порядку). Затем отметить все файлы и декодируйте.

Или попробуйте раскодировать письмо с помощью программы uudecode.exe (она умеет автоматически "собирать" файл, состоящий из нескольких частей) - каждое письмо запишите в отдельный файл (part1.uue, part2.uue ...), и в среде MSDOS раскодируйте все письма, набрав команду:
uudecode.exe part

СКАЧАТЬ утилиту UUDECODE:
Кодировка MIME (base64)

Multipurpose Internet Mail Extensions - Многоцелевые расширения почтовой службы Internet. Система передачи графики и другой нетекстовой информации по электронной почте или www. В MIME способ кодирования и декодирования электронных писем согласован с типом передаваемых документов. Тип документов указан в заголовках сообщений, которыми обмениваются электронный почтальон или навигатор WWW..

КАК ОПОЗНАТЬ:
Обратите внимание на заголовок письма - там обязательно есть строка "MIME-Version", маркер кодировки содержится только строке MIME-заголовка "Content-Transfer-Encoding: Base64":
Content-Type: text/plain; charset=US-ASCII; name=text.txt
Content-transfer-encoding: base64
MIME-Version: 1.0

SXQncyBhIHZlcnkgZnVubnkgdGhvdWdodCB0aGF0LCBpZiBCZWFycyB3ZXJl
IEJlZXMsDQpUaGV5J2QgYnVpbGQgdGhlaXIgbmVzdHMgYXQgdGhlIGJvdHRv
bCB0aGVzZSBzdGFpcnMuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdpbm5pZS10aGUtUG9vaA0KDQo=

КАК РАСКОДИРОВАТЬ:
Воспользуетесь программкой mime64, для этого - запишите письмо (вместе с заголовком) в файл, последняя строка кода должна быть последней строкой в файле и раскодируйте в среде MSDOS с помощью команды:
mime64.exe infile [outfile]

СКАЧАТЬ утилиту MIME64:
Кодировка Quoted-Printable

Quoted-printable - (в устной речи употребляется сокращённое Qprintable). Способ семибитной кодировки электронной почты, когда вместо русских букв передаются их шестнадцатеричные коды, записанные латиницей.

КАК ОПОЗНАТЬ:
Текст выглядит как набор сочетаний "=XX", где XX- шестнадцатеричное представление ASCII-символа. В тексте или заголовках письма могут содержаться слова "quoted-printable". Например:
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

=CF=F0=E8=E2=E5=F2 =C2=E0=E4=EC=E8!!

=D1=EF=E0=F1=E8=E1=EE =E7=E0 =F2=E2=EE=E8
=EF=EE=F1=EB=E5=E4=ED=E8=E5=
...

КАК РАСКОДИРОВАТЬ:
Воспользуетесь программкой mimeqp, для этого - запишите письмо (вместе с заголовком) в файл, и раскодируйте в среде MSDOS с помощью команды:
mimeqp.exe infile [outfile]

Или используйте программку mmencode - запишите письмо в файл и раскодируйте в среде MSDOS с помощью команды:
mmencode.exe -u -q infile [outfile]

СКАЧАТЬ утилиту MIMEQP:   СКАЧАТЬ утилиту MMENCODE:
 
Кодировка BinHex

BinHex - Способ кодировки электронной почты, принятый на Macintosh. Длина строки 64 символа. Для совместимости поддерживается некоторыми Windows-почтальонами.

КАК ОПОЗНАТЬ:
В начале обычно стоит строка типа такой: "(This file must be converted with BinHex 4.0)", в тексте или заголовках письма встречаются слова "BinHex". Например:
=====================_830452152==_
Content-Type: application/mac-binhex40; name="LOGIN.CMD"
Content-Disposition: attachment; filename="LOGIN.CMD"

Part 1.4 Type: Macintosh BinHex Archive (application/mac-binhex40)

KFh0`FQpYF(30)#!J)'peG("eG#!NF'&cFhG[FQ4F-6-0)`dM)(GP)'&bC5"ZEhF
JE'pRCf9N)'PZ$5-0C@jN$E#E!!!!:

--=====================_830452152==_
Content-Type: text/plain; charset="us-ascii"

КАК РАСКОДИРОВАТЬ:
Воспользуетесь программкой xbin, для этого - запишите письмо в файл и извлеките данные в среде MSDOS с помощью команды:
xbin.exe file
При этом создаются три файла с расширениями: file.dat, file.rsr, file.inf (Собственно данные содержатся в файле с расширением ".dat")

СКАЧАТЬ утилиту XBIN:
Кодировка Xbtoa

BTOA - Способ кодировки электронной почты. Способ кодировки электронной почты, принятый на Macintosh. Длина строки здесь 78 символов. Для совместимости поддерживается некоторыми Windows-почтальонами.

КАК ОПОЗНАТЬ:
Закодированный текст начинается словами "xbtoa Begin", в конце - "xbtoa End". Например:
xbtoa Begin
LSWk$U>b++j/FRPUu::.+Und7Xl?28V;^I2iZR6R+JttXiLm9Fmi\glY+_nmXIp]>XrpD,9q\R1UoW

...
2-e_5P)clh1r+D5M!F#n>QCh%C#/n8g:E%YX:+=\iJ%13OO%13(8
xbtoa End N 16950 4236 E 7 S 198ec9 R 8335744f

КАК РАСКОДИРОВАТЬ:
Письма обработанные кодировщиком "btoa", раскодируются программой atob.

СКАЧАТЬ утилиту BTOA:
Кодировка PGP

PGP - Pretty Good Privacy. Программа шифрования (главным образом, для электронной почты).

КАК ОПОЗНАТЬ:
Так выглядит документ, обработанный программой шифрования PGP (Pretty Good Privacy):
-----BEGIN PGP MESSAGE-----
Version: 2.3a

hDwCqboOL27CRKkBAX0dOcOn07QFhqNuJFetp+WUb1QedPkRturI/2vKkS5/bmzR
nnJKj75Cp7/FhILgCrmmAABEIcd+MmhibfPVVmmgeuEUAbE5r+lCtHFRM/FaA4Lr
...
izQw7OIWz4OrGtRpAM00NSalSXiVnuiGG21pLa3ozTPEw0x/+iqXRRPILdhWeSV7
6nATz0hikdjSeuaolcHs086O2G2+1KQl7TTqpWU0ST+BhcKB
=T6hh
-----END PGP MESSAGE-----

КАК РАСКОДИРОВАТЬ:
Воспользуетесь программкой pgp, для этого - запишите письмо в отдельный файл и раскодируйте данные в среде MSDOS с помощью команды:
pgp.exe ciphertextfile [-o plaintextfile]
Кроме самой программы pgp.exe, вам понадобится открытый ключ автора письма и ваш закрытый ключ (подробнее - см. документацию к программе pgp).

СКАЧАТЬ утилиту PGP:
Упакованный "пакет статей"

Упакованный "пакет статей", включается сервером телеконференций по команде PACK.

КАК ОПОЗНАТЬ:
Закодированный текст начинается строкой "start stdin":
start stdin
,+aH*bB,X}QfD{p5@wOmS>[nZ@j4!CC.aHO'7icI$08DllEr+Yd!-%lhBl>oph"_
>:zhH]d3/7gC'9%wNG@trjH|-y2#WMmWHfG/5SX:;zHnKP&jX;F%[M5#)U*0"j?c
.....
S!-cc=,5@bU(cZq*(FZ_&o<!/OV.Haa[HT[m:i@t<E0%y"rQ';+uv=Qw,uVd,n{A
~IHgA=koK47O
end

КАК РАСКОДИРОВАТЬ:
Необходима программа распаковки ящика uunpack.exe, перепишите программку в каталог, например, C:\UUPC и в файл вызова UUPC.BAT последней строкой добавьте:
c:\uupc\uunpack c:\uupc\mail\boxes\имя пользователя, получающего новости

ПОЛУЧИТЬ утилиту UUNPACK:
Для того, чтобы получить эту утилиту, вышлите письмо на mailserv@inforis.nnov.su, указав в тексте письма:
cd relcom/dos
get uunpack.zip
quit

или послав письмо по адресу relis@kiae.su, указав в тексте письма:
send uunpack-dos

Нужен оригинальный шрифт?
Нет проблем - fontproblem@yandex.ru

eServer.ru :: Хостинг-оператор #1
Сомневаетесь в выборе хостинга? Хотите проверить, прежде чем платить? eServer.ru предоставляет Вам эту возможность! SSL, MySQL, SSI, PHP, PERL, C++, JSP, неограниченный трафик, домен бесплатно и многое другое.
Выберите нас, Вы не пожалеете об этом выборе! Узнать больше...
Hosted by uCoz