Конечно, вы можете. Однако прямой поддержки MIME нет, поэтому вам, возможно, понадобится что-то более или менее умное, чтобы не допустить ошибки в структуре MIME обрабатываемого сообщения.
В качестве простого начального примера, предположим, что вы извлекли вложение в ~/public_html/prv/att000.jpg
и настроили свой веб-сервер для обслуживания этого на http://localhost:8080/~you/prv/att00.jpg
, вы можете добавить заголовок, подобный этому;
:0fhw
| formail -I"X-Tracted: http://localhost:8080/~you/prv/att00.jpg"
Добавить что-то встроенное в само сообщение сложнее, но это отнюдь не невозможно.
Редактировать: Ваш сценарий может быть упрощен, чтобы не использовать временный файл (и, кроме того, избегайте многократного Бесполезного использования Cat ), если вы извлекаете идентификатор сообщения из в вашем рецепте:
# Whitespace in [square brackets] is tab, space
:0c
* ^Message-Id:[ ]*<\/[^@>]+
| (mkdir -p "webserver path"/"$MATCH"; munpack -C "webserver path"/"$MATCH" )
... но, возможно, вы хотите сохранить свой сценарий (без «Бесполезных кошек») и изменить его так, чтобы он не только извлекал вложения, но и создавал измененное сообщение в стандартном выводе со ссылками на вложенные файлы. .
Я могу предложить три варианта, каждый из которых немного громоздок. Предположим, что ваше входящее сообщение является (multipart / mixed (text / plain (multipart / related text / html image / png image / png))); Вы могли бы
Оберните ваше сообщение в (multipart / related (text / plain: ваш список ссылок здесь) (message / rfc822: оригинальное сообщение здесь: (multipart / mixed (текст / обычный (multipart / related text / html) image / png image / png)))). Для этого вообще не требуется разбирать исходное сообщение, но неудобно его просматривать на большинстве клиентов.
Предположим, что всегда есть текстовая или обычная часть, и прикрепите список ссылок к ее концу. Это требует логики для поиска и расширения первой текстовой / простой части и некоторого запасного варианта, если в первой части нет текстовой / простой части.
Предположим, что все ваши сообщения состоят из нескольких частей / *, и просто добавьте текстовую / обычную часть в начале, как самую первую часть, или сразу после первой текстовой / простой части. Это требует той же логики и может показаться неудобным для просмотра на некоторых клиентах, но делает меньше предположений о входящем сообщении, и поэтому может быть безопаснее.
Если вы можете закодировать это, вызвать Procmail на нем довольно просто; просто опустите флаг h
из предыдущего рецепта (который указывает только фильтрацию в заголовках).
:0fw
| replace-entire-message-with-a-different-message