Шлём письма из Mail.app с правильным форматированием

    Если вы пользуетесь Apple Mail и шлете письма в формате HTML, то, возможно, заметили, что у получателей ваших писем шрифт текста совсем не тот, который вы выставили в настройках. Причина этого безобразия проста — Mail.app не указывает в посылаемом HTML-тексте шрифт, а установленный в настройках шрифт используется только при создании своих писем или просмотре чужих, если в них тоже не указан шрифт. В результате программа, которая получает письмо, выводит его на экран тем шрифтом, который она сочтет нужным использовать. У тех, кто пользуется Microsoft Outlook, где шрифт по умолчанию — Times New Roman, 12 пунктов, ваши письма будут выглядеть особенно коряво. Могут быть различные причины нежелания смиряться с таким положением вещей — от простых эстетических до необходимости следовать корпоративным стандартам.

    Самое простое, но не самое удобное решение — каждый раз выставлять вручную шрифт. Моей силы воли на это не хватает. Если вы с этим проблем не видите, дальше можно не читать.

    Второй вариант — создать автоматическую подпись с нужным шрифтом, так, чтобы в ней было несколько пустых строк в начале, и писать внутри этой подписи. С этим вариантом, к сожалению, наблюдаются проблемы: по какой-то причине регулярно случаются глюки с размером шрифта.

    Можно, конечно, использовать другую программу. Но если вам нравится именно Mail.app, то для вас не все потеряно: под катом я расскажу про еще один вариант, который мне показался наиболее удачным.

    Мы воспользуемся функцией создания писем на основе бланка (Stationery). Если вы этим никогда не пользовались, то создайте новое письмо и нажмите в на кнопку «Показать бланк» на панели инструментов нового письма. Появится список поставляемых с Mail.app бланков. Когда вы выбираете бланк, то появляется красивый шаблон, в который можно вставить свои картинки и текст.

    Нам нужно создать собственный шаблон. Mail хранит шаблоны в каталоге /Library/Application Support/Apple/Mail/Stationery/Apple/Contents/Resources. Там есть папки, соответствующие различным категориям бланков. Можно выбрать любую, для определенности возьмем папку Announcements. Зайдя внутрь, мы найдем папку Contents, и дальше — Resources.

    Открыв эту папку, вы увидите, среди прочего, папки-пакеты (bundle) с расширением ".mailstationery", помеченные белыми иконками, изображающими конверты. Нам нужно создать такой же пакет. Для этого создаем каталог, и называем его по своему вкусу, например, «mymail.mailstationery».

    Система его сразу же изобразит в виде пакета. Заходим в пакет, ткнув в него правой кнопкой мыши (либо Control+клик) и выбрав из локального меню «Показать содержимое пакета». В нем создаем папку «Contents», и в этой папке создаем папку «Resources».

    Теперь нам нужно создать несколько файлов и еще одну папку. Сначала создадим папку «English.lproj», и в ней заведем один текстовый файл с именем «DisplayName.strings». Такой файл необязательно создавать с нуля, его можно раздобыть в любом другом таком же пакете, а потом слегка подредактировать. Собственно, в файле есть только одна строчка:

    "Display Name" = "My Mail";

    Она задает имя, которое будет присвоено вашему бланку. Вместо «My Mail» можно поставить все, что вы пожелаете.

    Дальше нам нужно создать в каталоге Resouces еще три файла. Самый главный — это, собственно, HTML-шаблон. Файл называется content.html. Для начала впишите туда что-нибудь вроде этого:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html><head>
     <title>Formal</title>
    </head>

    <body style="margin: 10px; padding: 0pt; background: rgb(255, 255, 255)">
     <div class="body-content" id="body-content">
        <font style="font-size: 13px;" color="#000000" face="Tahoma, Arial, Helvetica, sans serif">
         <span contenteditable="true" apple-content-name="body" style="display: block; width: 600px"> <br></span>
        </font>
     </div>
    </body>
    </html>




    В дальнейшем вы сможете менять все по своему вкусу, в том числе, возможно, захотите добавить подпись. Дело в том, что если письмо создается на основе бланка, то обычный механизм добавления подписи к нему не работает.

    Второй файл называется «Description.plist». Вот его содержимое:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Background Images</key>
        <array/>
        <key>Composite Images</key>
        <array/>
        <key>Folder Name</key>
        <string>mymail.mailstationery</string>
        <key>HTML File</key>
        <string>content.html</string>
        <key>Images</key>
        <array>
        </array>
        <key>Stationery ID</key>
        <string>52CF436E-68DA-4842-A638-2B912C5F7322</string>
        <key>Thumbnail Image</key>
        <string>thumbnail.png</string>
    </dict>
    </plist>



    И последний файл должен называться thumbnail.png. Кстати, судя по всему, в бланках поддерживаются только файлы форматов png и jpeg, поэтому не пытайтесь использовать, например, gif. Лучше всего этот файл взять из какого-нибудь другого бланка, и, при желании, подредактировать его.

    Теперь у нас есть все, что нужно. Осталась последняя деталь: чтобы создавать новые письма было удобно, должен быть быстрый способ создания письма на основе бланка. И такой способ есть: попытка открыть созданный нами пакет бланка в Finder приводит к созданию пустого письма на основе этого бланка. Поэтому я рекомендую перетащить созданный нами пакет «mymail.mailstationery» в правую часть Dock-а, слева от корзины. Тогда функция создания нового письма будет всегда под рукой, даже когда главное окно Mail.app перекрыто или свернуто.

    Эргономически процесс будет слегка отличаться от обычного: вам придется ткнуть мышкой в левый верхний угол в окне нового письма, чтобы появился курсор и открылось поле для ввода текста.

    Если вы захотите добавить какие-то картинки (например, логотип компании), то скопируйте графический файл в тот же каталог «Resources» в формате jpeg или png, вставьте на него ссылку в HTML-файл шаблона и не забудьте включить название этого файла в Description.plist. После этого раздел Images этого файла будет выглядеть таким образом:

    <key>Images</key>
        <array>
            <string>my_logo.png</string>
        </array>



    Я проверил этот метод с различными почтовыми программами, включая MS Outlook, все работает как надо.
    Поделиться публикацией
    Комментарии 6
      +2
      Шлем письма


      Поставьте букву ё, 3-и раза подряд неправильно прочитал )
      0
      File -> New Message, потом для пустого письма File -> Save As Stationery, задать имя. Искать по тому-же пути, что указан выше, но в папке пользователя, т.е. ~/Library/Application Support/Apple/Mail/Stationery/Apple/Contents/Resources. Как вариант.
        0
        Спасибо, действительно, такой вариант тоже есть, и так можно быстрее получить нужный результат. Полученный HTML-файл лучше все же отредактировать вручную, вставив список шрифтов и убедившись, что он правильно сгенерирован.

        Одно уточнение — путь выглядит таким образом: ~/Library/Application Support/Mail/Stationery/Apple/Contents/Resources/Custom/Contents/Resources

        0
        чтобы создавать новые письма было удобно, должен быть быстрый способ создания письма на основе бланка.


        С созданием нового все понятно. А как же быть в этом случае с ответами на чьи-то письма?
          0
          К сожалению, для этого случая либо нужно вручную назначать шрифт, либо пользоваться методом с автоматической подписью. Я остановился на втором, но при это сделал файл подписи вручную (переписал созданный программой), чтобы он был максимально простым, а значит, вероятность сбоя была минимальна. Но при этом приходится делать лишние телодвижения, чтобы убирать строку в начале файла.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое