На этой странице конспект беседы ЯНЗ (Якова Наумовича
Зайдельмана) с Куками по теме:
Настройка почтовых программ
Вася.
Давайте перейдём к практике. Как применить всё, что мы узнали о
кодировках и кодировании?
ЯНЗ.
Для начала давайте поговорим о том, как правильно отправлять письма.
Вася.
В каком смысле правильно?
Петя.
Видимо, имеются в виду правильные установки кодировки и кодирования.
ЯНЗ.
Именно так. Но кроме кодировки и кодирования есть ещё один параметр,
и я начал бы именно с него. Я имею в виду формат письма. Если
помните, мы говорили, что у типа text чаще всего
встречаются подтипы plain и html. Это и есть
формат: простой или HTML.
Петя.
А другие форматы бывают?
ЯНЗ.
Да, но они встречаются настолько редко, что мы о них говорить не
будем. Почтовые клиенты The Bat! и Outlook Express
поддерживают именно эти два формата.
Вася.
А чем отличаются друг от друга простой и HTML форматы?
ЯНЗ.
В простом формате письмо содержит только текст, в нём нет никаких
средств для дополнительного оформления. В формате HTML письмо
записывается по правилам языка HTML со всеми его возможностями: можно
указывать цвет, размер и начертание шрифта, использовать выделение
жирным и курсивом, вставлять таблицы и рисунки и т. д.
Вася.
По-моему, формат HTML намного богаче! Наверное, надо пользоваться
именно им. По сравнению с HTML простой текст смотрится совсем
невзрачно.
ЯНЗ.
Возможно, Вася будет удивлён, но мой первый совет
стараться всегда обходиться простым текстом, использовать формат HTML
только в случае серьёзной необходимости.
Вася.
А чем же так плох HTML?
ЯНЗ.
Во-первых, этот формат заметно увеличивает объём письма, а
следовательно, плату за его отправку и получение. Переписка
становится более дорогой.
Вася.
Неужели добавка HTML-оформления оказывается настолько существенной?
ЯНЗ.
Вес этой добавки существенно зависит от размера и структуры письма, а
также от той программы, с помощью которой оно создавалось. Например,
Microsoft Outlook (не путать с Outlook Express) добавляет в каждое
HTML-письмо примерно 1 килобайт стилевых описаний. Для небольших
писем этот довесок может оказаться больше содержательного текста!
Многие программы при отправке HTML-писем дублируют текст сообщения,
повторяя его в одном письме дважды: как обычный текст и как HTML. При
этом некоторые мейлеры (например, The Bat!) дают возможность
отключить этот режим и пересылать чистый HTML, но очень многие, в том
числе Microsoft Outlook и Outlook Express не позволяют отказаться от
дублирования. Таким образом, пересылаемый объём удваивается даже без
учёта добавки за счёт оформления.
Ещё один источник лишнего объёма, формально не связанный напрямую с
HTML, настройки по умолчанию. Известно, что многие
пользователи, особенно не очень искушённые и опытные, почти не меняют
настроек в программах, работая в тех режимах, которые установлены по
умолчанию.
Так вот, в операционных системах семейства Windows для работы с
почтой по умолчанию используется Outlook Express. А в
Outlook Express по умолчанию установлен режим отправки писем в
HTML. Но самое страшное, что для писем в формате HTML по умолчанию
установлено кодирование quoted-printable.
Напомню, что каждая русская буква при этом кодируется тремя байтами
вместо одного. В результате объём письма увеличивается в 2 раза за
счёт дублирования и ещё в 3 раза за счёт кодирования.
Итого в 6 раз, и это без учёта расходов на HTML-оформление!
Вася.
Да, арифметика впечатляющая…
ЯНЗ.
Второй недостаток HTML-формата его понимают не все
почтовые программы. В частности, HTML заведомо не годится для
мейлеров, работающих в текстовом режиме.
Вася.
А разве ими ещё кто-то пользуется?
ЯНЗ.
Представь себе, да, и этих пользователей не так уж мало. Например, в
среде Linux очень популярны мейлеры Pine и Mutt, оба работают в
текстовом формате и не могут показать HTML-форматирование.
Так что, отправляя письмо в формате HTML, вы не можете быть уверены,
что получатель сумеет увидеть все его красоты. А если так, то стоит
ли тратить время на дополнительное оформление и платить деньги за
дополнительный объём?
И последний по порядку, но может быть, самый главный недостаток HTML.
Этот формат предоставляет очень большие возможности по
распространению вирусов и маскировке спама. Естественно, спаммеры и
вирусописатели это знают и как правило распространяют свои
вредоносные послания именно в формате HTML.
Вася.
Ну и что? Почему из-за этого надо ограничить использование HTML
честными пользователями? Я же не буду рассылать ни спама, ни вирусов!
ЯНЗ.
Проблема в том, что многие спам-фильтры считают HTML-письма
подозрительными. Используя этот формат, вы рискуете, что ваше письмо
будет принято за спам и не будет пропущено к получателю.
Здесь возникает ещё и такой парадокс. Спаммеры используют HTML не
просто так: они активно применяют возможности этого формата, выделяя,
например, шрифтами различные элементы своих посланий. Если вы будете
пользоваться этими возможностями, риск быть принятым за спаммера
значительно возрастает. А если ими не пользоваться, зачем вообще
писать в HTML?
Петя.
Значит, не нужно писать письма в формате HTML?
ЯНЗ.
Запретить не могу, но очень не советую. И всех, с кем сам веду
переписку, всегда прошу писать мне только в формате простого текста.
HTML может быть оправдан только в том случае, когда в письме
действительно нужны какие-то элементы дополнительного оформления, но
это на самом деле случается чрезвычайно редко.
Петя.
С форматом всё ясно. Теперь давайте выясним, какое кодирование надо
использовать.
ЯНЗ.
По-моему, ответ очевиден. Конечно же, 8-битное. Не вижу никакого
смысла в том, чтобы без необходимости увеличивать объём письма.
Только в том случае, если вы знаете, что письмо будет передаваться
через сервер, не пропускающий 8-битные символы, можно применить
MIME-кодирование.
Вася.
А что лучше: base64 или quoted-printable?
Петя.
Мне кажется, если уж применять дополнительное кодирование, то лучше
уж base64. Лучше увеличить объём на треть, чем в три раза.
ЯНЗ.
Согласен с Петей, но хочу подчеркнуть, что такая арифметика
верна для русских текстов. Если же вы пишете письма на французском
или немецком языке, то лучше использовать quoted-printable:
увеличение объёма будет весьма незначительно.
Вася.
А если писать по-английски?
ЯНЗ.
Для английского языка достаточно 7-битного кодирования, так что
никаких проблем вообще не возникает.
Отдельно стоит вопрос о кодировании заголовков. Честно говоря,
удовлетворительного способа писать в заголовке по-русски я не знаю.
Включение в заголовок 8-битных символов нарушает стандарт и создаёт
проблемы с кодировками: ведь кодировка, указанная в поле Content-Type
на заголовок формально не распространяется, получается, что кодировка
заголовка вообще нигде не указана.
Использование 7-битного MIME-кодирования делает заголовок нечитаемым
в простых системах проверки почты и сбивает с толку некоторые
серверы. Можно ещё писать русские слова транслитом
латинскими буквами, но это смотрится очень уж некрасиво.
Петя.
Видимо, надо выбирать меньшее из всех этих зол.
Вася.
И какое же из них меньшее?
ЯНЗ.
Лично я всегда использую в заголовке 8-битные символы, но понимаю,
что у некоторых корреспондентов мои заголовки будут отображаться
неверно. Если такая проблема возникает, в переписке с этим
корреспондентом использую только английские заголовки.
Петя.
Будем считать, что с кодированием мы разобрались. Остались
кодировки. В какой кодировке рекомендуется писать письма?
ЯНЗ.
Давайте сразу оговоримся, что мы будем обсуждать только письма на
русском языке. Когда электронная почта в нашей стране начинала
развиваться, все письма пересылались только в КОИ-8. Вплоть до конца
1990-х годов эта кодировка господствовала в русскоязычной переписке,
и если бы вы задали мне вопрос о выборе лет 5 назад, я без колебаний
ответил бы, что писать надо только в КОИ-8.
Петя.
С тех пор что-то изменилось?
ЯНЗ.
Основных изменений два.
Во-первых, очень сильно уменьшилось количество пользователей
устаревших почтовых программ, не понимающих MIME. Как следствие,
понятие кодировки стало более прозрачным: правильно настроенный
мейлер сумеет показать письмо в любой кодировке, если она верно
указана в заголовках письма.
Во-вторых, значительно выросло количество пользователей электронной
почты, работающих в Windows и использующих кодировку windows-1251.
Спорить с большинством всегда сложно, а рациональных причин,
объясняющих, почему писать в этой кодировке нельзя, у меня нет.
Вася.
И всё же, какие могут быть рекомендации?
ЯНЗ.
Выбирать надо из двух кодировок: КОИ-8 и windows-1251, всё остальное
в электронной почте экзотика, которая не даст ничего,
кроме лишних проблем.
Самая главная рекомендация позаботиться о том, чтобы
кодировка была правильно указана в заголовках. Для большинства
получателей это обеспечит возможность прочитать ваше письмо, не
задумываясь о том, в какой кодировке оно написано.
Вторая рекомендация стремиться к тому, чтобы вся
переписка по возможности велась в одной кодировке. Это особенно
актуально, если работа с письмами ведётся вне почтовой программы:
например, при обработке почтовых архивов внешними инструментами или
при создании веб-отражений почтовых дискуссий.
Петя.
И всё же, какой кодировкой пользуешься лично ты?
ЯНЗ.
Моя почтовая программа настроена на безоговорочное использование
КОИ-8 во всех исходящих письмах.
Петя.
А почему именно КОИ-8?
ЯНЗ.
Отчасти по историческим причинам: я работаю с почтой с 1993 года и с
тех пор сохраняю привычную кодировку. А главное это то,
что основную массу моей корреспонденции составляют письма рассылок и
дискуссионных листов, а там (всё по тем же историческим причинам)
принято писать в КОИ-8.
Вася.
Чтобы всё стало совсем понятным, нужно увидеть, как настраивать
почтовую программу для отправки писем в правильном виде.
ЯНЗ.
Это совсем несложно. Давайте начнём с Outlook Express. Выбираем
в меню: Сервис/Параметры/Отправка сообщений (см. рисунок). В
нижней части окна надо установить в качестве формата отправляемых
сообщений обычный текст:
Вася.
А что такое формат отправляемых новостей?
ЯНЗ.
Это настройки для писем в группы телеконференций. О них мы ничего не
говорили, но если вы будете ими пользоваться, советую установить в
этом разделе такие же настройки, как для обычных писем.
Теперь нажимаем на кнопку Настройка обычного текста
(см. рисунок). К сожалению, это окно очень неудачно переведено
на русский язык. Вместо кодирование написано
кодировка, в выпадающем меню есть жуткое название
допущено к печати (имеется в виду quoted-printable),
фразу про отступ на > знаков я оставляю на совести
переводчиков без комментариев.
Однако, нам надо, не обращая внимание на эти издевательства над
русским языком, установить правильные настройки.
Вася.
Видимо, такие же как на рисунке?
ЯНЗ.
Да, я рекомендую именно такие настройки: установить кодировку MIME,
выбрать нет для кодировки текста (на самом деле это
означает 8-битное кодирование) и разрешить 8-битные символы в
заголовках. О параметрах в нижней части окна пока говорить не буду,
но рекомендую установить их такими же, как у меня: перенос на 132
позиции и использование знака >.
Петя.
А что такое кодировка UUEncode?
ЯНЗ.
Это один из способов преобразования к 7-битному кодированию, который
использовался до введения MIME.
Нажимаем в окне настройки текста OK и возвращаемся в окно
параметров. На всякий случай (вдруг когда-нибудь придётся писать в
HTML) можно нажать кнопку Настройка HTML и сделать
аналогичные установки: MIME без кодировки и разрешённые 8-битные
заголовки.
Вася.
Чтобы написать письмо в HTML, надо будет снова вызывать это окно и
переключать настройку?
ЯНЗ.
Не обязательно. Эта настройка предназначена для основной массы писем,
она будет использоваться по умолчанию. Для каждого отдельного письма
вы можете установить формат HTML или обычный текст, выбрав нужный
пункт в меню Формат окна подготовки сообщения.
Возвращаемся в окно настроек. Теперь нажимаем Выбор языка. В
этом окне мы выбираем кодировку писем по умолчанию. В каждом
конкретном письме кодировку можно изменить, этот пункт тоже находится
в меню Формат.
Обратите внимание на пункт При ответе использовать заголовки
только на английском языке. Рекомендую обязательно поставить
галочку в этом месте.
Вася.
А зачем мы разрешали 8-битные заголовки, если они всё равно будут
только английскими?
ЯНЗ.
Здесь речь идёт совсем о другом, хотя догадаться об этом по тексту
надписи сложно. Здесь подразумеваются пометки, которые мейлер в
некоторых случаях автоматически вставляет в тему письма. Например,
при ответе на чьё-то письмо в тему добавляется префикс Re: (reply), а
при пересылке письма другому адресату префикс Fw:
(forward).
Эти пометки стандартны, практически все почтовые программы
знают о них и при сортировке по теме группируют вместе письма,
отличающиеся только таким префиксом. Если же убрать галочку в
настройках, Outlook Express будет использовать вместо стандартных
английских русские префиксы, которых другие мейлеры не знают.
И последняя рекомендация по настройкам убрать пометку
Отвечать в формате исходных сообщений:
Если эта пометка установлена, Outlook Express использует ваши
настройки только для новых писем. Если же вы отвечаете на чьё-то
сообщение, формат и кодировка будут скопированы из исходного письма.
Если вы хотите, чтобы ваши письма всегда были в том формате и
кодировке, который установили именно вы, эту настройку надо отключить.
Петя.
Давайте теперь настроим The Bat!
ЯНЗ.
The Bat! предоставляет больше возможностей для настройки, поэтому
некоторые процедуры получаются более сложными.
Для начала отметим, что интересующие нас параметры устанавливаются на
разных уровнях.
Формат по умолчанию устанавливается единым для всех почтовых ящиков.
В главном меню выбираем Свойства/Настройка/Редактор и просмотр
сообщений:
Нижнее выпадающее меню на этой странице выбирает формат письма.
Первые два варианта означают формат простого текста (отличаются режим
работы редактора), последние два формат HTML (в последнем
случае отправляется чистый HTML, без текстового дублирования).
Кодирование настраивается отдельно для каждого почтового ящика.
Открываем окно настроек ящика (Ящик/Свойства почтового ящика
или аккорд Shift+Ctrl+P). На вкладке Управление
почтой ставим нужное кодирование 8-битных символов (Без
кодирования):
Сложнее всего настраивается кодировка. В The Bat! письма
формируются на основе шаблонов. Фактически шаблон это
программа, которая формирует начальный текст письма и устанавливает
многие его параметры.
Основные шаблоны устанавливаются для каждого почтового ящика. В уже
знакомом вам окне свойств можно установить 5 шаблонов. Мы с вами
ограничимся первыми двумя. В шаблоне Новое письмо есть
возможность выбрать в отдельном выпадающем меню кодировку по
умолчанию:
А вот в шаблоне Ответ такой возможности нет: предполагается,
что ответ всегда отправляется в той же кодировке, в которой пришло
исходное письмо.
Чтобы изменить это поведение и всегда отправлять ответы в одной
кодировке, например, в КОИ-8, надо вставить в шаблон команду
%CHARSET="koi8-r". Дополнительно рекомендую убрать пометку
Использовать номера ответов в Теме.
Петя.
А что она означает?
ЯНЗ.
При ответе на письма The Bat! добавляет к стандартному префиксу
Re: порядковый номер письма в данной теме. Возможно, это
удобно, если использовать только этот мейлер. Но другие почтовые
программы эту нумерацию не понимают, сортировка по темам нарушается.
Так что номер лучше не ставить.
Вася.
Мы говорили про основные шаблоны. А есть ещё дополнительные?
ЯНЗ.
Есть. Во-первых, в каждом ящике можно создавать папки, и для
каждой папки устанавливать свои шаблоны. Во-вторых, можно
устанавливать отдельные шаблоны для корреспондентов из адресной
книги. Таким образом, конкретные параметры письма зависят от
почтового ящика, папки и адресата. Это даёт возможности для очень
гибких настроек, но требует аккуратности и понимания, чтобы не
запутаться в этом многообразии.
Вася.
А можно не пользоваться этими многочисленными шаблонами?
ЯНЗ.
Можно ограничиться шаблонами ящика и не делать отдельных
настроек для папок и адресатов.
Петя.
А есть ли возможность изменить параметры для одного конкретного
письма?
ЯНЗ.
Конечно. В меню Параметры окна подготовки письма вы можете
установить для этого письма формат и кодировку, не меняя при этом
настроек по умолчанию.
|