Написать shell-процедуру, которая:
•все почтовые сообщения, полученные от заданного первым параметром пользователя, посылает
работающим в данный момент в системе пользователям;
•если в системе работает пользователь, приславший данное сообщение, то этому пользователю
посылает сообщение, содержащееся в файле, имя которого передается в качестве параметра.
man who
man sendmail
> man who
> man sendmailА поподробнее,просто совсем не шарю.. :(
>> man who
>> man sendmail
> А поподробнее,просто совсем не шарю.. :(man bash
man man
> Написать shell-процедуру, которая:
> •все почтовые сообщения, полученные от заданного первым параметром пользователя,
> посылает
> работающим в данный момент в системе пользователям;
> •если в системе работает пользователь, приславший данное сообщение, то этому пользователю
> посылает сообщение, содержащееся в файле, имя которого передается в качестве параметра.Рассыльшик одинаковых писем с вложениями каждому адресату из списка это где-то 300-350 отдельных строк кода. Причём непосредственно готовое уже сообщение шлётся отдельной программой. Т.е. надо где-то 600-1000 строк кода. Полных 1-5 рабочих дней, при знании shell языка, при умении написать понятный код.
Один из вариантов: оставить контакты в каком-либо виде (личная почта аккаунта на сайте и т.п.), приготовить денег (0,05-0,25 от месячной з\п) и ждать.
Или задавать конкретные вопросы.
>[оверквотинг удален]
> Т.е. надо где-то 600-1000 строк кода. Полных 1-5 рабочих дней, при
> знании shell языка, при умении написать понятный код.
> Один из вариантов: оставить контакты в каком-либо виде (личная почта аккаунта на
> сайте и т.п.), приготовить денег (0,05-0,25 от месячной з\п) и ждать.
> Или задавать конкретные вопросы.1) отправьте свои 25% зарплаты в фонд голодающих детей Африки.
2) отправьте свои 1000 строк кода куда хотите
3) для решения поставленой задачи достаточно простого скрипта (ну еще строк 10-ть от силы на вытяжку текста письма):
[root@local 111]# cat ./msg.bsh
#!/bin/bashsender=$1
file=$2
msg=''function getmsg()
{
# get mail message here from specified user & echo it.
# simple mail|grep $sender|etc
echo "this is a test mail."
}function sndmsg()
{
local text
who|
while read w
do
name=`echo "$w"|awk '{ printf $1 }'`
term=`echo "$w"|awk '{ printf $2 }'`
if [ "$name" != "$sender" ]
then
text="$msg"
else
text="$file"
fi
if [ -n "$text" ]
then
if [ "$name" != "$sender" ]
then
echo -e "!!! MESSAGE from $sender !!!\n\r" > /dev/$term
else
echo -e "!!! MESSAGE for $sender !!!\n\r" > /dev/$term
fi
echo -e "$text\n\r" > /dev/$term
fi
done
}function help()
{
echo "$0: sender [file]"
}case $# in
1|\
2) msg=`getmsg`
if [ -e "$file" ]
then
file=`cat "$file"`
else
file=''
fi
sndmsg;
;;
*) help
;;
esacPS
разумеется можно и красивее сделать (это за 5-ть минут на коленке), но откуда 1000 строк кода интересно возьмуться?
>>[оверквотинг удален]
>> Т.е. надо где-то 600-1000 строк кода. Полных 1-5 рабочих дней, при
>> знании shell языка, при умении написать понятный код.
>> Один из вариантов: оставить контакты в каком-либо виде (личная почта аккаунта на
>> сайте и т.п.), приготовить денег (0,05-0,25 от месячной з\п) и ждать.
>> Или задавать конкретные вопросы.
> 1) отправьте свои 25% зарплаты в фонд голодающих детей Африки.
> 2) отправьте свои 1000 строк кода куда хотите
> 3) для решения поставленой задачи достаточно простого скрипта (ну еще строк 10-ть
> от силы на вытяжку текста письма):Не видно самого интересного, содержания function getmsg(), которая
"читает все почтовые сообщения, полученные от ЗАДАННОГО первым параметром пользователя"
и sndmsg(), которая определяет жив ли ЗАДАННЫЙ, и только тогда шлёт;
:D
> Не видно самого интересного, содержания function getmsg(), которая
> "читает все почтовые сообщения, полученные от ЗАДАННОГО первым параметром пользователя"не видно потому, что неизвестно где почтовые сообщения живут: /var/mail? DB? etc
откуда надо - оттуда и читайте. все равно не больше 10-20-и строк кода в скрипте.> и sndmsg(), которая определяет жив ли ЗАДАННЫЙ, и только тогда шлёт;
с каких пор команда who "неживых" пользователей выводит?
> :Dсказал же сразу - на коленке делано.
:D.
Добавлю, к примеру: что делать скрипту если $file нет. И там вылезет немало такой шахтёрской работы. А окажется, ТЗ надо подкорректировать. Проектеры чаще ошибаются в сторону переоценки времени/объёма, программеры в сторону недооценки.Я не писал, что это будет 1000 строк кода. У меня написано иначе. Хотя, я, действительно, ~100 строк хелпа приписал к строкам кода.
А вообще: с почином. За опубликованный код - уважение за дело.
> Добавлю, к примеру: что делать скрипту если $file нет. И там вылезетif [ -e "$file" ]
не впечатляет?
> немало такой шахтёрской работы. А окажется, ТЗ надо подкорректировать. Проектеры чаще
> ошибаются в сторону переоценки времени/объёма, программеры в сторону недооценки.
> Я не писал, что это будет 1000 строк кода. У меня написаноНаписано у Вас (русским по форуму):
"
Рассыльшик одинаковых писем с вложениями каждому адресату из списка это где-то 300-350 отдельных строк кода. Причём непосредственно готовое уже сообщение шлётся отдельной программой. Т.е. надо где-то 600-1000 строк кода.
"> иначе. Хотя, я, действительно, ~100 строк хелпа приписал к строкам кода.
хелп - не код, а документация считай (применительно к скрипту).
PS
про "почин" вообще не понял.
PSS
в условиях задачи не указано, что входящие почтовые сообщения должны так же по почте пересылаться => кидаем их прямо на терминал работающего пользователя (самый простой вариант реализации).