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

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

Emacs может делать это программно. Вы можете создать буфер (get-buffer-create), заполнить его информацией заголовка и вызвать mail-send non interactiveivelly (установить mail-interactive в nil).

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

From: "Toto" <[email protected]>
To: [email protected]
Subject: Something
BCC: [email protected]
--text follows this line--

Hello, how are you?

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

Ответ 7

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

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

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

Конфигурация SendMail

Объявления заголовков 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 (в окружении вопросительных знаков) являются указанный, по крайней мере, один из указанные флаги должны быть указаны в определение почтовой программы для этого заголовка автоматически выводиться. Если один из эти заголовки находятся на входе, это направленный на выход независимо от эти флаги.

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

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

Ответ 8

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

Ответ 9

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

Я узнал о псевдо-заголовках через их использование в Debian BTS System.

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

Ответ 10

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

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

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

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

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

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

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

Ответ 11

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

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

Ответ 12

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

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