LINUX.ORG.RU
решено ФорумAdmin

На сколько реально?: mutt->вложение->обработка shell скриптом по расширению-> макрос libre office..


2

1

Подскажите пожалуйста на сколько реально организовать такое: mutt-> (входящая почта с определенного адреса) сохр. вложение в папку->обработка shell скриптом по расширению (если рар архив зип итд)-> макрос libre office-> /место куды/файл.xls ... ну далее крон рассылка etc..

На данный момент есть: Помогите с конфигом mutt! (комментарий)

Скрипт отсылающий почту по cron mutt-->msmtp, а хоца чтоб вообще с дивана не вставать))

Скрипт:

#!/bin/bash

# Текст письма
str1="Строка 1"
str2="Строка 2"
str3="Строка 3"
str4="Строка 4​"
str5="Строка 5"
str6="Строка 6"
str7="Строка 7"
str8="Строка 8"
str9="Строка 9"
str10="Строка 10"
str11="Строка 11"
str12="Строка 12"

# Тема письма
tem="Тема письма"

# Путь к файлу вложения
failvl="Путь к файлу вложения"

# Список рассылки
adres=`cat файл_рассылки` 
for i in $adres; 

do 

 echo -e "$str1<br>$str2<br>$str3<br>$str4<br>$str5<br>$str6<br>$str7<br>$str8<br>$str9<br>$str10<br>$str11<br>$str12" | mutt -e "set content_type="text/html"" -s "$tem" -a "$failvl" -- "$i"

sleep 5

done

Файл рассылки:

mail1@mail.ru
mail2@mail.ru
mail3@mail.ru
mail4@mail.ru
mail5@mail.ru
mail6@mail.ru
mail7@mail.ru
mail8@mail.ru
mail9@mail.ru
mail10@mail.ru

вполне реально. только не понятно, что делает макрос в LO.
на каком этапе возникли проблемы?

aol ★★★★★
()
Ответ на: комментарий от aol

Макрос LO Видоизменяет прайс, делает наценки, вставляет картинки

В линуксе недавно, непинайте сильно,

Макроса к LO пока в принципе нету может быль можно вообще без LO обойтись??, через shell как нибудь??
Незнаю как mutt сохранить вложение и вообще настроить прием почты, пока он работает только как отправлялка...
Ткните в ман тока русский по муту плиз..
Дальше пока некопал..

Заранее спасибо!

sashokaaa
() автор топика
Ответ на: комментарий от aol

ERP и CRM смотрел

openEPR очень понравилась.. на питоне написаная шустрая импорт экспорт есть везде.. но косяк у них у всех нет русской локализации (те чтоб контрагент был с инн кпп etc.. чтоб торг 12 был итд.. дописать это хз как, русскую локаль вроде 1 фирма продает но стоит это если не ошибаюсь 30тр и это за инн и десяток печатных форм.. это очень дорого да и если разариться на них не факт что поддержка будет, когда новую сф введут итд..) нету этого всего.. да исличком нафаршированно там все мне такое не требуется..
JFire не смортел..

sashokaaa
() автор топика

Макроса к LO пока в принципе нету может быль можно вообще без LO обойтись??, через shell как нибудь??

Телепатирую что через шелл ты сделаешь все, что тебе нужно. Только вот что тебе нужно? Опиши какой процесс/алгоритм ты хочешь получить на выходе.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Алгоритм

на почту пришел прайс от определенного адресата в виде вложения прайс.xls или в архиве прайс.rar или прайс.zip ---> вложение сохраняется в папку ---> далее запускается скрипт и проверяет в каком формате вложение *.zip *.rar *.xls (если *.zip *.rar, то распаковывается в подпапку, если *.xls то просто в нее копируется) ---> далее скриптом прайс.xls обрабатывается до нужного вида и кладется в папку для рассылки, от туда по крону по расписанию уже оно отправляется)

Структура входящего прайса:
шапка
код название наличие цена
+раздел
|+подраздел
||товар 1
||товар 2
||товар 3
+раздел2
|+подраздел2
||товар 1
||товар 2
||товар 3

Вид желаемого прайса:
-структура таже
-сменить шапку (своя картинка+текст+сменить шрифт)
-убрать галочку «показать сетку» (в эскеле)
-свой шрифт у раздела подраздела товара
-свой фон ячейки у раздела подраздела товара
-свое обрамление ячеек у раздела подраздела товара
-сделать наценку на раздел подраздел (на каждый раздел подраздел свою)
-закрепить шапку
-добавить справа колонку заказ
-если возможно добавить фильтры в шапку
-удалить некотрые группы подруппы


вроде все

sashokaaa
() автор топика
Ответ на: Алгоритм от sashokaaa

Пока что все можно реализовать скриптами.

По получению и распаковке писем - гугли по ключевым словам fetchmail и uudecode, например вот: http://www.opennet.ru/base/sys/linux_user_mail.txt.html

Вот здесь: http://xmlhack.ru/texts/06/from-microsoft-to-openoffice/from-microsoft-to-ope... - достаточно подробно описано применение макроса к excel файлу из коммандной строки

Отправлять ты уже научился, как я понял.

Вроде все есть?

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Какую получалку почты заюзать?

отправляю сейчас через msmtp, какую лучше получалку почты использовать?, постфикс не 2 в 1?

sashokaaa
() автор топика
Ответ на: комментарий от Kroz

поставил: fetchmail procmail ripmime..

mutt -y почта приходит, не совсем понимаю цечку:

fetchmail (получает почту) ---> procmail (раскладывает по папкам ~/Mail/mail) ---> далее оно как то должно передоваться ripmime и тот уже клал в папку ??

- прием почты вызывается только по mutt -y ? (если просто mutt почта не будет проверяться?) - если первое так то что нужно писать в .procmailrc чтоб ripmime складывал *.xls в нужную папку

конфиги с какого то форума свиснул..

.procmailrc

MAILDIR=   $HOME/Mail            
LOGFILE=   /dev/null            
LOGABSTRACT=   no            
VERBOSE=   off
#FORMAIL=   /usr/bin/formail         
DEFAULT=   $MAILDIR/mail            

:0                     
* ^From.*mail@mail.ru
$MAILDIR/wfolder

#:0 Whc: .msgid.lock               
#| $FORMAIL -D 16384 .msgid.cache

:0 a                     
$MAILDIR/duplicates

:0                     
* ^Content-type:.*html
$MAILDIR/html

.fetchmailrc

poll imap.gmail.com
port 993
protocol IMAP
user 'gmail@gmail.com'
pass '************'
ssl
keep
mda '/usr/bin/procmail -d %T' 

.muttrc

ignore *
unignore  Date To From: Subject
mono  header     underline ^(From|To|Cc|Reply-To|Subject):
mono  quoted     bold
set index_format="%4C %Z %{%b %d} %-15.15F %s"
set to_chars="  TCF"
set sort=threads
set quote_regexp="^([ \t[A-Za-z]*]*[>+])+"
hdr_order Date From To Subject
set pager_context=1
set pager_index_lines=6
set include=ask-yes
set fast_reply=yes
set confirmappend=no
set edit_headers=yes
set attribution="On %d, %n wrote:"
set date_format="!%a, %b %d, %Y at %H:%M %Z"
set indent_string="> "
set editor="nano"
set folder="~/Mail"
mailboxes =mail
set mbox="~/Mail/mail"
set mbox_type=mbox
set postponed="~/Mail/postponed"
set record="~/Mail/sent"
set sort_browser=reverse-size
set sendmail="/usr/bin/msmtp"
set realname="mail1"
set from="mail@gmail.ru"
set envelope_from=yes
set pgp_verify_sig=no
sashokaaa
() автор топика

Хотел кстати ВСЕМ СКАЗАТЬ СПАСИБО!!

linux.org.ru самый отрывчивый форум, по сравнению с темж убунтуфорумом, где совета недождешься а админ с конфига удалит ссыль на какой нить радикал в скрипте и ффсе...

это не ап это от сердца и души..

ЗЫ пробла не решена копаю, подскажите ..

sashokaaa
() автор топика
Ответ на: комментарий от Kroz

procmailrc

Сохранял в папку с именем-абракодаброй, добавил параноид, теперь сохраняет с «_____» вместо кадабры можно как нибудь исправить??

:0  
* ^From.*mail@mail.ru
{	:0 
	| ripmime -i - --no-nameless --paranoid -d $MAILDIR/att
}

$MAILDIR/wfolder

sashokaaa
() автор топика
Ответ на: procmailrc от sashokaaa

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

Если для каталога $MAILDIR - назови его по-английски.

Если с файлом-вложением:
1. Возможно если ты его прикрепишь в таком виде к исходащему письму - аброкадаброй, то на стороне получателя он нормально прочитается? Попробуй.
2. Покажи сюда аброкадабру. Думаю, что с помощью iconv смогу перекодировать в то что нужно.
3а. Если совсем уж плохо, уверен что предварительно это можно будет пропустить через маленький скриптик, который перед тем как скормить ripmime, преобразует имя, скажем, в транслит.
3b. Также можно скормить скриптику, который после того как ripmime выделит, переименует получившееся в нормальное имя, взятое с самого вложения (строка Content-Type )

В общем попробуй 1, покажи 2 (без paranoid), если нет - помогу с 3.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

ага с русским...

(казнить нельзя помиловать, прям получилось=) каталог по ангельски назван, с этим норм.. 1. вложение не нужно никуда пересылать, в дальнейшем на этойже машине предстоит обработка макросом.. 2. «���������.xls (неверная кодировка)» (но это я сохранил с линукс машины в тхт и вставил на форум c WIN7 notepad++, а в линуксе как ромбики символы выглядят)

вроде так.. а как прописать в скрипте,-

#!/bin/bash
fetchmail
# Вот от начал почту получать, и как потом узать что он закончил свое дело и запустить?

find /home/sashok/Mail/att ! -name '*.xls' ! -name '*.rar' ! -name '*.zip' -delete
sashokaaa
() автор топика
Ответ на: комментарий от sashokaaa

вообщем часть файлов *.xls приходящих по почте видимо в одной кодировке часть в другой, (есть и переименнованные которые не читаются, есть и переименнованные которые читаются (в линуксе)).. можно как нибуть их пресекодировать к 1 кодировке?

sashokaaa
() автор топика
Ответ на: комментарий от sashokaaa

поставил libre calc с ним нормально открываются все *.xls , ранее я просто в glumeric, кот. по умолчанию стоит открывал.., но по большому счету очень бы хотелось перекодировать в норм кодировку все входящие *.xls

sashokaaa
() автор топика
Ответ на: комментарий от sashokaaa

вообщем часть файлов *.xls приходящих по почте видимо в одной кодировке часть в другой, (есть и переименнованные которые не читаются, есть и переименнованные которые читаются (в линуксе)).. можно как нибуть их пресекодировать к 1 кодировке?

Вот тебе пару примеров:
1. Загляни в исходник самого e-mail. (Можешь даже в e-mail клиенте сделать View source или сохранить как файл и посмотреть его или посмотреть файлы которые сохраняет procmail / mutt ). Там перед вложением пишется его имя и кодировка этого имени. Например:
Content-Disposition: attachment; filename=«=?KOI8-U?B?MiDT1MHCyczJ1NLPzsEgTm8uMTUucGRm?=»
Здесь кодировка koi8-u.

2. Далее. Убери ключ --paranoid из ripmime, потом зайди в каталог с распакованными файлами, и запусти вот такое:
$ ls | iconv -f koi8-r -t utf8
Предполагаю что локаль твоей системы utf8 - посмотреть можно по комманде locale . Файлы которые именованы в koi8-r будут нормально показаны. Если у тебя файлы в cp1251 (из windows) - то замени koi8-r на cp1251 и получишь что надо.

Это теория. Сейчас попробую что-то для практики сварганить...

Kroz ★★★★★
()
Ответ на: комментарий от sashokaaa

М-да. Вручную перекодировать легко, но оказалось, что переводя в utf8 что из koi8-r, что из cp1251 дают русские буквы. А значит сделать «автоопределение кодировки» сложнее. Чуть попозже выложу...

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

-В основном кодировка :
Content-Disposition: attachment; filename=«=?koi8-r?B?897F1C54bHM=?=»
(вложение просто книга *.xls)

-Кодировку вложения вторго типа немогу посмотреть, тк:
имя на filename=«Price_010112»
(вложение *.rar и в нем *.xls)

locale

LANG=ru_RU.UTF-8
LANGUAGE=ru:en
LC_CTYPE=«ru_RU.UTF-8»
LC_NUMERIC=«ru_RU.UTF-8»
LC_TIME=«ru_RU.UTF-8»
LC_COLLATE=«ru_RU.UTF-8»
LC_MONETARY=«ru_RU.UTF-8»
LC_MESSAGES=«ru_RU.UTF-8»
LC_PAPER=«ru_RU.UTF-8»
LC_NAME=«ru_RU.UTF-8»
LC_ADDRESS=«ru_RU.UTF-8»
LC_TELEPHONE=«ru_RU.UTF-8»
LC_MEASUREMENT=«ru_RU.UTF-8»
LC_IDENTIFICATION=«ru_RU.UTF-8»
LC_ALL=

sashokaaa
() автор топика
Ответ на: комментарий от Kroz

ls | iconv -f koi8-r -t utf8

Счет-фактура.xls
Счет.xls
Реализация.xls
╖ъ╖Ю╖с╖Ю╖Ц╖Д╖з 31.01.2012.doc
(при таком варианте все имена файлов по русски кроме *.doc, но он в принципе не нужен)

ls | iconv -f cp1251 -t utf8

рТБКУ_TLC.xls
уЮЕФ-ЖБЛФХТБ.xls
уЮЕФ.xls
тЕБМЙЪБГЙС.xls
§Я§а§У§а§г§д§Ъ 31.01.2012.doc

sashokaaa
() автор топика
Ответ на: комментарий от sashokaaa

(вложение *.rar и в нем *.xls)

Если rar, то это уже другая история. Нужно либо использовать вместо rar x утилиту unrar, у которой нет проблем с кодировками, либо перекодировать из кодировки cp866:

Просмотр:
$ ls | iconv -f cp866 -t utf8

P. S. В zip тоже есть проблемы с русским. Поэтому лучше сразу установить «правильный» unzip у которого нет этой проблемы. В Gentoo это делается просто - просто включается USE-флаг natspec, как у тебя - узнавай.

Полезно: http://freesource.info/wiki/Lokalizacija/SituacijaSArxivatorami

Kroz ★★★★★
()
Ответ на: комментарий от sashokaaa

Если ты точно знаешь что у тебя все файлы в кодировке koi8-r, то все легко: просто на каталог делаешь:

$ convmv --notest -f koi8-r -t utf8 *

P. S. Проверь что не корежит имена файлов которые уже в правильно кодировке. convmv обещает быть умным и пропускать такие файлы.

А вот если нужно определять кодировку, тут уже сложнее.

Вот еще интресный ресурс нашел:
http://www.spohelp.ru/forums/17-gotovye-resheniya/topics/915-reshenie-problem...

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

convmv --notest -f koi8-r -t utf8 *
файлы шикарно все переименовались, козябра осталась только с *.doc, но это не страшно он не нужен (ls | iconv -f cp866 -t utf8, не та кодировка)
файлы с норм именами непопортились все открывается

переименованный *.rar архив открываеться но файл читаться не хочется..

sashokaaa
() автор топика
Ответ на: комментарий от Kroz

пока вроде все, дальше в любом случае вопросы будут, но ето после того как я макрос напишу, Спасибо большое!

sashokaaa
() автор топика
Ответ на: комментарий от sashokaaa

Ok.

Тогда помечай эту тему как решенную, а будут вопросы - открывай новую.

И, да, Линукс для тебя ;)

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Шикарно, !!!
Щас протестил скрипт из 4 строчек,
всю почту выкачал, от нужного адресата вложения извлек,
почту занулил, переименовал,
оставил только файлы с нужным расширением. Спасибо еще раз!

sashokaaa
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.