Позволяет ли ваш почтовый клиент программно добавлять собственные заголовки?

StackOverflow https://stackoverflow.com/questions/296603

Вопрос

Я работаю над проектом по борьбе со спамом (центовая почта), который предполагает использование отправителем клиентского плагина, который добавляет пользовательский заголовок (а также подпись, но эта часть Полегче).Общая проблема заключается в добавлении заголовка электронного письма к исходящей почте, где содержимое поля заголовка определяется динамически для каждого сообщения.

Удивительно, но в Pine/Alpine это невозможно.Pine позволяет указать сценарий фильтрации для исходящей почты, но через него проходит только тело, а не заголовки.Вы, конечно, можете определить собственные заголовки в настройках Pine, но я не вижу способа динамически изменять их содержимое.

Я был бы благодарен услышать, как это сделать в других почтовых клиентах (Thunderbird, Outlook, Evolution, Mutt и т. д.).И, конечно, если я ошибаюсь насчет Пайна.

Это было полезно?

Решение

Вы можете сделать это в Eudora .

Вы можете сделать это программно в Outlook с помощью пользовательская форма .

Это можно сделать в Mozilla из примерно: config .

Другие советы

Хотя это не плагин в самом строгом смысле этого слова, вы можете создать прокси-сервер SMTP, который будет модифицировать электронную почту - например, что-то вроде сканера исходящей электронной почты AVG. Это имело бы преимущество работы со многими почтовыми клиентами; Вы также можете создать плагин, который будет взаимодействовать с прокси-сервером с одной стороны и интерфейсом электронной почты с другой.

Плагин Thunderbird Enigmail контролирует заголовки исходящей почты. Так что это доказательство существования, что это возможно в Thunderbird.

Я согласен с Писквором. Я бы реализовал его в качестве прокси-сервера SMTP, который дал бы ряд преимуществ:

<Ол>
  • Вы не будете ограничены каким-либо одним почтовым клиентом и, следовательно, ограничены его API (если есть)
  • Его можно применять на стороне почтового сервера, поэтому устраняются головные боли при установке и развертывании
  • Emacs может сделать это программно.Вы можете создать буфер (get-buffer-create), заполните его информацией заголовка и вызовите mail-send неинтерактивно (установить mail-interactive к nil).

    Пример содержимого буфера (заголовок+тело) для использования с mail-send:

    From: "Toto" <toto@toto.net>
    To: somebody@somewhere.net
    Subject: Something
    BCC: sebastien.rocca-serra@f4-group.com
    --text follows this line--
    
    Hello, how are you?
    

    Вы также можете изменить каждое исходящее электронное письмо (заголовок + тело), ​​добавив привязку к mail-send-hook.

    Об этом уже спрашивали конкретно про Thunderbird:

    Верхний ответ содержит код для изменения заголовков в обычном формате xul/js.

    Я откопал это из старых частей мелодий Брэйна и других вещей...

    Я думаю, что этот подход заключается в том, чтобы перейти к конфигурации SENDMAIL и сделать это с помощью сценариев [bash/etc] если я правильно понимаю.

    Корневой файлhttp://snap.nlc.dcccd.edu/reference/sysadmin/julian/ewtoc.html

    Конфигурация отправки почты

    Объявления заголовкаhttp://snap.nlc.dcccd.edu/reference/sysadmin/julian/ch04/061-064.html#Heading22

    http://snap.nlc.dcccd.edu/reference/sysadmin/julian/ch04/078-080.html

    Формат линий заголовка определяется линией H.Синтаксис этой линии

    H[c ?c mflagsc ?]c hnamec :c htemplate

    Продолжение линий в этом спецификация введена сразу в исходящее сообщение.В htemplate перед ним расширяется макрос вставляется в сообщение.Если расширение пусто, строка заголовка не включены.Если mflags (окружены вопросительными знаками) указана, по крайней мере, одна из указанные флаги должны быть указаны в определение почтового ящика для этого заголовка автоматически выведите наружу.Если один из эти заголовки находятся во входе, это Meme it направленный на выход независимо от эти флаги.

    Специальные линии заголовка. Несколько линий заголовков имеют специальные интерпретации, определенные файлом конфигурации.Другие имеют интерпретации, встроенные в sendmail, который нельзя изменить без изменения кода.В встроенные функции описаны в следующий список:

    • Возврат-Квитанция-Кому:Если этот заголовок отправляется, сообщение будет отправлено на любой указанные имена, когда окончательный доставка завершена.Отправитель должен установить флаг l (местная доставка) в дескрипторе почтовой рассылки.• Ошибки-To:Если ошибки случаются где-либо во время обработки, этот заголовок посылает сообщения об ошибках к перечисленным именам а не отправителю.Используйте это строку заголовка для списков рассылки, чтобы ошибки возвращаются в список администратор.• К:Если сообщение приходит без получателей, перечисленных в сообщение (в To:, CC:, или BCC::строка), sendmail добавляет «Видимо Кому»:строка заголовка для каждого получателя указанный в команде sendmail линия.

    Мне приходит в голову, что, поскольку pine является открытым исходным кодом, если эта функциональность важна для вас для этой программы, вы можете попробовать внести свой вклад в проект, чтобы добавить эту функцию.

    Одна вещь, на которую вы могли бы обратить внимание, это использовать псевдозаголовки вместо заголовков. Beasue Pine / Alpine позволяет вам указать программу фильтрации для прохождения электронной почты, вы можете добавить заголовок к телу в начале, который должен быть достаточно простым для обработки. Я не уверен, что это точно соответствует вашим целям, так как я не знаю, какую систему вы собираете.

    Я узнал о псевдозаголовках по их использованию в системе Debian BTS .

    Отвечая на вопрос, я использую GMail, и вы не можете редактировать заголовки программно (мне было бы интересно увидеть веб-почту, которая позволяет вам). Вы не можете даже фильтровать пользовательские заголовки, такие как X-List, это довольно раздражает.

    Что-то не так с общей идеей подключать почтовые клиенты для пользовательских заголовков.

    Существует только много клиентов. Включая разные версии, на разных системах.

    Хорошая особенность формата header + body в том, что все данные, не относящиеся к пользователю, серверу и маршрутизации, скрыты от пользователя. И этой идее важно следовать. Я не думаю, что пользователь должен беспокоиться о некоторых пользовательских заголовках, связанных с сервером.

    Кроме того, данные, которые вы пытаетесь добавить, на самом деле являются данными, специфичными для пользователя. Понравилась подпись. Проверяет действительность отправителя. Нет причин скрывать это от пользователя.

    Подписание данных электронной почты - это хорошо известный процесс, используемый PGP, SMIME и т. д. Вероятно, существует больше почтовых клиентов, разрешающих такие действия (проверка и подпись внешними программами), чем добавление или изменение пользовательских заголовков почты.

    Пользовательские заголовки должны быть изменены почтовыми серверами; пользовательские данные по почтовым клиентам.

    Я думаю, что вы должны поместить свои данные в сообщение или часть сообщения.

    Один из способов заставить его работать в Pine без изменения самого Pine или почтового сервера - это сделать так, чтобы Pine доставлялся через программу командной строки (традиционно / usr / sbin / sendmail или тому подобное), и вызываемая программа была бы оболочкой. для оригинальной программы. Затем вы можете добавить любой заголовок, который вам нужен.

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

    Для всех почтовых клиентов, которые поддерживают использование внешнего редактора, у вас может быть сценарий, который добавляет определенный шаблон в шаблон, который отправляется в редактор. В mutt есть параметр конфигурации, который называется edit_headers , которые добавляют общий набор заголовков, так что было бы легко добавить свои собственные. Существует также еще один параметр, который называется my_hdr который можно было бы использовать. Mutt поддерживает нотацию `backtick` `для запуска внешних команд.

    Было бы лучше указать собственный шаблон, но это пока невозможно.

    scroll top