Я ищу способ сделать в Sieve то, что я делал в Procmail в течение многих лет, а именно вставлять однозначный заголовок даты во входящие сообщения, который дает мне понять - независимо от того, похоронен "получен" "заголовки, возможно, с нескольких серверов, и, тем не менее, мой почтовый клиент интерпретирует дату отправки сообщения - когда мой сервер получил сообщение. Вот как я это сделал в Procmail:
# First create the "date_received" variable for my time zone:
date_received=`/bin/date -ud '+2 hour' +'%A %Y-%m-%d %H:%M:%S +0200'`
# Second, insert the header containing the date_received variable:
:0 fh w
| formail -i "X-Local-Date-Received: $date_received"
Я нашел «addheader» ( RFC 5293 ), который, очевидно, добавит заголовок, но из-за чего-то другого я читаю (извините, не помню где), я считаю, что Sieve не будет Запустите команду «date» в оболочке из-за ограничений или намеренного (и понятного) предпочтения не запускать команды оболочки по соображениям безопасности.
Другая, возможно, полезная информация: я делаю это через Roundcube 1.3.6, но у меня есть ощущение ( также из-за того, что я прочитал ), что Roundcube может перезаписать пользовательский набор фильтров Sieve, если я редактирую необработанный код в Roundcube. При необходимости я очень рад отредактировать или создать файл конфигурации Sieve на сервере напрямую, чтобы добиться этого для всех пользователей на сервере, но, запустив Sendmail и Procmail в течение многих лет, я не уверен, что это лучшее место для этого.
EDIT:
В качестве теста в Roundcube я добавил это вверху моего набора фильтров Sieve:
require ["fileinto","editheader"];
# rule:[test editheader]
if true
{
addheader "X-Test-Header" "This is a test header.";
}
На самом деле я не добавил строку "require [" fileinto "," editheader "];"; Я просто добавил «editheader» в существующую строку в верхней части набора фильтров, например:
require ["copy","fileinto","regex","editheader"];
Я ожидаю, что это добавит ...
X-Test-Header: This is a test header.
... для каждого входящего сообщения, но Roundcube не позволит мне сохранить его:
An error occurred.
Unable to save filter. Server error occurred.
Поиск этой ошибки возвращает один связанный результат, но решение не опубликовано.
Однако я не собираюсь фокусироваться на Roundcube. Как я уже говорил ранее, я добавлю этот фильтр Sieve из командной строки при необходимости.