Сделал скриптик:#!/bin/sh
ADMIN="admin@domain.ru"
MAILTO="$RECIPIENTS,$ADMIN"
SUBJECT=$(cat $EMAIL|grep Subject|awk -F: '{print $2}')
TEXT="ВНИМАНИЕ!!!\n\nНа почтовый адрес $RECIPIENTS пришло сообщение, содержащее ВИРУС!\n"
TEXT=$TEXT"\nНе волнуйтесь, вирус обезврежен антивирусным программным обеспечением, установленным на почтовом сервере."
TEXT=$TEXT"\nВашим данным ничто не угражает."
if [ "x$EMAIL" != "x" ] && [ -f $EMAIL ]
then
TEXT=$TEXT"\nПисьмо добавлено в карантин: $EMAIL \n"
fi
TEXT=$TEXT"\nОтправитель: $SENDER"
TEXT=$TEXT"\nТема сообщения: $SUBJECT"
TEXT=$TEXT"\nИдентификатор Вируса: $VIRUS"
#TEXT=$TEXT"\nПочтовый клиент: $CLIENT"
#TEXT=$TEXT"\nПочтовый сервер: $SERVER"
TEXT=$TEXT"\n\nЕсли вы уверены, что письмо не содержит вредоносного содержимого, либо, не смотря ни на что, вы все равно хотите прочитать данное сообщение и$
TEXT=$TEXT"\nОбратите внимание, что в карантине зараженные письма находятся 7 дней, после чего удаляются без возможности восстановления!"
TEXT=$TEXT"\n\nС наилучшими пожеланиями,\nВаш администратор."
echo "$TEXT" | mail -s "[ВИРУС] $SUBJECT" $MAILTOИмеется связка Postfix+Dovecot+Clamav+Spamassasin, все работает но одно но, когда отправляю тестовое письмо с вирусом, приходит по этому скрипту ответ. В совершенно непонятно кодировке. Пробовал игратся с кодировкой в roundcube ни к чему не привело. Роундкуб все равно перекодит из utf-8 во что-то не понятное( менял кодировку скрипта. Эфекта никакого(
вот текст письма по скрипту:
Return-Path: <clamav@mail2..ru>
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail2..ru
X-Spam-Level: ****
X-Spam-Status: No, score=4.4 required=5.0 tests=ALL_TRUSTED,FSL_RU_URL,
HEAD_ILLEGAL_CHARS,NO_DNS_FOR_FROM,SUBJECT_NEEDS_ENCODING,SUBJ_ILLEGAL_CHARS
autolearn=no version=3.3.1
Delivered-To: daniel@.ru
Received: from mail2..ru (localhost [127.0.0.1])
by mail2..ru (Postfix) with ESMTP id DD861981344;
Fri, 15 Apr 2011 15:35:12 +0400 (MSD)
Received: by mail2..ru (Postfix, from userid 200)
id A520698162E; Fri, 15 Apr 2011 15:35:12 +0400 (MSD)
To: admin@.ru,daniel@.ru
Subject: [ВИРУС] Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd virus test Fwd Fwd 1541 testtest
Message-Id: <20110415113512.A520698162E@mail2..ru>
Date: Fri, 15 Apr 2011 15:35:12 +0400 (MSD)
From: clamav@mail2..ru
X-Virus-Scanned: Внимание! Обнаружен вирус!ВНИМАНИЕ!!!
На почтовый адрес admin@.ru пришло сообщение, содержащее ВИРУС!
Не волнуйтесь, вирус обезврежен антивирусным программным обеспечением, установленным на почтовом сервере.
Вашим данным ничто не угражает.
Письмо добавлено в карантин: /tmp/virus.wvPolNКак видно нет обычных строчек:
Content-Description: Notification
Content-Type: text/plain; charset=utf-8Вопрос, как отучить раундкуб чтобы не кодил письма с непонятной кодировкой? Илиже как в скрипте добавить кодировку чтобы указывалась в Content-Type?
Заранее Спасибо
Мыслей нет?
> Мыслей нет?----------------------------------------------
#!/bin/shcat << EEEOOOTTT | /usr/local/libexec/dovecot/deliver -d $USER
From: postmaster@foo.bar
To: $USER
Subject: Привет!
Content-Type: text/html; charset="windows-1251"По городу ходила
Большая крокодила.
EEEOOOTTTexit 0
>[оверквотинг удален]
> #!/bin/sh
> cat << EEEOOOTTT | /usr/local/libexec/dovecot/deliver -d $USER
> From: postmaster@foo.bar
> To: $USER
> Subject: Привет!
> Content-Type: text/html; charset="windows-1251"
> По городу ходила
> Большая крокодила.
> EEEOOOTTT
> exit 0Сабж в письме должен быть в семи битах.
> Сабж в письме должен быть в семи битах.У меня работает, оннако. Прекрасно читается как сабж, так и тело.
> Сабж в письме должен быть в семи битах./usr/home/mail/foo.bar/user/cur > cat 1303289689.M699090P27603.foo.bar,S=157,W=164:2,S
From: user@foo.bar
To: user@foo.bar
Subject: == ПОВІДОМЛЕННЯ ВІД ПОШТОВОЇ СИСТЕМИ ==
Content-Type: text/html; charset="windows-1251"перевірка ЇЄЁ
/usr/home/mail/foo.bar/user/cur >
что стоит в $rcmail_config['default_charset'] ?
нет у меня Content-Type в тексте письма нету генерируемого скриптом. Скрипт выше дает письмо но оно неправильно оформленно. И поэтому в роундкубе не открывается вообше
> нет у меня Content-Type в тексте письма нету генерируемого скриптом. Скрипт выше
> дает письмо но оно неправильно оформленно. И поэтому в роундкубе не
> открывается вообшеЧто значит "неправильно оформлено"? Выкладывайте сюда, тогда будет видно - правильно или неправильно. Только будете выкладывать - выкладывайте полностью, со всеми пустыми строками.
> что стоит в $rcmail_config['default_charset'] ?$rcmail_config['default_charset'] = 'UTF-8';
И я выложил содержимое письма - с хедерами и телом - которое генерит скрипт. Все прекрасно открывается.
Это письмо не видит роундкуб, получилось после выполнения скрипта выше сказанного:From: admin@spbsseu.ru
To: daniel@spbsseu.ru
Subject: Привет!
Content-Type: text/html; charset="windows-1251"
По городу ходила
Большая крокодила.
EEEOOOTTT
exit 0
добавил в скрипт строчку:
#!/bin/sh
ADMIN="daniel@spbsseu.ru"
MAILTO="$RECIPIENTS,$ADMIN"
SUBJECT=$(cat $EMAIL|grep Subject|awk -F: '{print $2}')Content-Type: text/plain; charset="utf-8"
TEXT="ВНИМАНИЕ!!!\n\nНа почтовый адрес $RECIPIENTS пришло сообщение, содержащее ВИРУС!\n"
TEXT=$TEXT"\nНе волнуйтесь, вирус обезврежен антивирусным программным обеспечением,
...
TEXT=$TEXT"\n\nС наилучшими пожеланиями,\nВаш администратор."
echo "$TEXT" | mail -s "X-Virus $SUBJECT" $MAILTOПолучилось вот что:
Return-Path: <clamav@mail2.spbsseu.ru>
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail2.spbsseu.ru
X-Spam-Level: ****
X-Spam-Status: No, score=4.4 required=5.0 tests=ALL_TRUSTED,FSL_RU_URL,
HEAD_ILLEGAL_CHARS,NO_DNS_FOR_FROM,SUBJECT_NEEDS_ENCODING,SUBJ_ILLEGAL_CHARS
autolearn=no version=3.3.1
Delivered-To: daniel@spbsseu.ru
Received: from mail2.spbsseu.ru (localhost [127.0.0.1])
by mail2.spbsseu.ru (Postfix) with ESMTP id 4993B9804D6
for <daniel@spbsseu.ru>; Thu, 21 Apr 2011 10:32:36 +0400 (MSD)
Received: by mail2.spbsseu.ru (Postfix, from userid 200)
id 1EA87981695; Thu, 21 Apr 2011 10:32:35 +0400 (MSD)
To: daniel@spbsseu.ru,daniel@spbsseu.ru
Subject: X-Virus Fwd (без темы) Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd Fwd virus test Fwd Fw$
Message-Id: <20110421063236.1EA87981695@mail2.spbsseu.ru>
Date: Thu, 21 Apr 2011 10:32:35 +0400 (MSD)
From: clamav@mail2.spbsseu.ru
X-Virus-Scanned: Внимание! Обнаружен вирус!ВНИМАНИЕ!!!
На почтовый адрес daniel@spbsseu.ru пришло сообщение, содержащее ВИРУС!
Не волнуйтесь, вирус обезврежен антивирусным программным обеспечением, установленным на почтовом сервере.
Вашим данным ничто не угражает.
Письмо добавлено в карантин: /tmp/virus.kszUDFОтправитель: daniel@spbsseu.ru
Тема сообщения: Fwd
(без темы)
testtest
Идентификатор Вируса: Eicar-Test-SignatureКак видно контент тайп недобавился, и все равно в раундкубе получается билибирда.
> Как видно контент тайп недобавился, и все равно в раундкубе получается билибирда.Потому что нужно читать РФЦ!
Всякое письмо делится на хедеры и тело. Хедеры начинаются с первой строки письма и отделяются от тела пустой строкой. Все, что идет после первой пустой строки, хедером не считается.
Далее. То, что у вас в тело письма попала строка "exit 0" означает, что у вас коряво работает редактор текстов. В частности, конец строки записывается, как CR-LF вместо LF. Это понятно уже потому, что у вас не отработал EEEOOOTTT.
По итогу у вас не получается ни правильно выполнить скрипт, ни правильно сформировать письмо, потому что в него даже пустую строку без ^M вставить не удается.
Успехов!
>[оверквотинг удален]
> письма и отделяются от тела пустой строкой. Все, что идет после
> первой пустой строки, хедером не считается.
> Далее. То, что у вас в тело письма попала строка "exit 0"
> означает, что у вас коряво работает редактор текстов. В частности, конец
> строки записывается, как CR-LF вместо LF. Это понятно уже потому, что
> у вас не отработал EEEOOOTTT.
> По итогу у вас не получается ни правильно выполнить скрипт, ни правильно
> сформировать письмо, потому что в него даже пустую строку без ^M
> вставить не удается.
> Успехов!Хм. Т.е. выхотите сказать что проблемы с кодировкой у меня исключительно из-за текстового редактора? использую nano, скажите каким редактором сделаю им.
Какиенибудь мысли имеются?
> Какиенибудь мысли имеются?----------------------------------------------
#!/bin/shcat << EEEOOOTTT | /usr/local/libexec/dovecot/deliver -d $USER
From: postmaster@foo.bar
To: $USER
Subject: Привет!
Content-Type: text/html; charset="windows-1251"
<---- СОВСЕМ НИЧЕГО, НИ ЕДИНОГО СИМВОЛА, ДАЖЕ ПРОБЕЛА, ТОЛЬКО ПЕРЕВОД СТРОКИ
По городу ходила
Большая крокодила.
EEEOOOTTT <---- НИКАКИХ СИМВОЛОВ ПОСЛЕ ЕЕЕОООТТТ, ТОЛЬКО ПЕРЕВОД СТРОКИexit 0
# <---- ПОСЛЕДНЯЯ СТРОКА СКРИПТА - ВСЕГДА КОММЕНТ. ЗДОРОВО ЭКОНОМИТ НЕРВЫ
----------------------------------------------
В досе-виндовсе конец строки - два символа 0х13-0х10 ака ^M^J ака CR-LF.
В никсах - один символ. 0х10 ака ^J ака LF.Если скрипт набрать в редакторе, который строки завершает по-досовски, то в каждой "пустой" строке у вас будет невидимый символ ^M, а строка с точки зрения почтовика не будет пустой. И концевой маркер инлайнового текста будет иметь вид "ЕЕЕОООТТТ^M", а не тот, который шелл ищет. Вот потому у вас и не работают скрипты.
> Хм. Т.е. выхотите сказать что проблемы с кодировкой у меня исключительно из-за
> текстового редактора? использую nano, скажите каким редактором сделаю им.С vi/vim никогда проблем с совместимостью не было