The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как в Perl-скрипте получить тело письма!! "
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как в Perl-скрипте получить тело письма!! "
Сообщение от Anubis emailИскать по авторуВ закладки on 27-Май-03, 13:39  (MSK)
Я все перепробовал.Ничего не получается.
При отработке такого скрипта:
open(LG,">>/etc/test/test_sms");
while ($var=<stdin>){
  if ($var eq "\n")
  {
    $flag="readbody";
  }
  if ($flag eq "readbody")
  {
    push (@body, $var);
  }
print LG $var;
}
print LG @body;
close(LG);
ДАже файл не создается!!
Такое ощущение что stdin вобще не читается.
Почта точно перенаправляется на скрипт. Она точно не остается в ящике
пользователя.

Помогите!! Я уже не знаю за что братся!!Может дало в настройках FreeBSD?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как в Perl-скрипте получить тело письма!! "
Сообщение от DogEater Искать по авторуВ закладки on 27-Май-03, 13:56  (MSK)
>Я все перепробовал.Ничего не получается.
>При отработке такого скрипта:
>open(LG,">>/etc/test/test_sms");
>while ($var=<stdin>){
>  if ($var eq "\n")
>  {
>    $flag="readbody";
>  }
>  if ($flag eq "readbody")
>  {
>    push (@body, $var);
>  }
>print LG $var;
>}
>print LG @body;
>close(LG);
>ДАже файл не создается!!
>Такое ощущение что stdin вобще не читается.
>Почта точно перенаправляется на скрипт. Она точно не остается в ящике
>пользователя.
>
>Помогите!! Я уже не знаю за что братся!!Может дало в настройках FreeBSD?
>

попробуй: cat какое_нибудь_письмо | твой_скрипт

Кстати, зачем в /etc писать? Есть же /tmp или /home/youraccount наконец.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как в Perl-скрипте получить тело письма!! "
Сообщение от админ Искать по авторуВ закладки on 27-Май-03, 14:56  (MSK)
>>Я все перепробовал.Ничего не получается.
>>При отработке такого скрипта:
>>open(LG,">>/etc/test/test_sms");
>>while ($var=<stdin>){
>>  if ($var eq "\n")
>>  {
>>    $flag="readbody";
>>  }
>>  if ($flag eq "readbody")
>>  {
>>    push (@body, $var);
>>  }
>>print LG $var;
>>}
>>print LG @body;
>>close(LG);
>>ДАже файл не создается!!
>>Такое ощущение что stdin вобще не читается.
>>Почта точно перенаправляется на скрипт. Она точно не остается в ящике
>>пользователя.
>>
>>Помогите!! Я уже не знаю за что братся!!Может дало в настройках FreeBSD?
>>
>
>попробуй: cat какое_нибудь_письмо | твой_скрипт
>
>Кстати, зачем в /etc писать? Есть же /tmp или /home/youraccount наконец.

test.pl

#/usr/bin/perl
stop: while(<>){last stop if /^\n/;}while(<>){print;}exit 0;

cat что-нибудь | test >> куда-нибудь

Зы: не проверял

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Как в Perl-скрипте получить тело письма!! "
Сообщение от Anubis emailИскать по авторуВ закладки on 27-Май-03, 15:11  (MSK)
>попробуй: cat какое_нибудь_письмо | твой_скрипт
>
>Кстати, зачем в /etc писать? Есть же /tmp или /home/youraccount наконец.


Попробовал. Пишет собака вот что:
Use of uninitialized value at ./al.pl line такаято, <STDIN> chunk такойто.

Чего делать то с этим?Как это лечить?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как в Perl-скрипте получить тело письма!! "
Сообщение от poor bugger Искать по авторуВ закладки on 27-Май-03, 15:06  (MSK)
open(LG,">/tmp/test_sms") || die$!;
while(<>)
{
   next if /^\n/;
   print LG || die$!;
}
close(LG) || die$!;
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как в Perl-скрипте получить тело письма!! "
Сообщение от poor bugger Искать по авторуВ закладки on 27-Май-03, 15:08  (MSK)
мой всяко круче
  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Как в Perl-скрипте получить тело письма!! "
Сообщение от poor bugger Искать по авторуВ закладки on 27-Май-03, 15:20  (MSK)
не, вот так:

open(LG,">/tmp/test_sms") || die$!;
while(<>)
{
   last if /^\n/;
}
print LG while(<>);
close(LG) || die$!;

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Как в Perl-скрипте получить тело письма!! "
Сообщение от DogEater Искать по авторуВ закладки on 27-Май-03, 16:47  (MSK)
не круче а изящнее :-)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Как в Perl-скрипте получить тело письма!! "
Сообщение от админ Искать по авторуВ закладки on 27-Май-03, 17:09  (MSK)
>не круче а изящнее :-)

open(LG,">/tmp/test_sms") || die$!;

А что будет, если несколько процессов будут одновременно писать в это файл ?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Как в Perl-скрипте получить тело письма!! "
Сообщение от DogEater Искать по авторуВ закладки on 27-Май-03, 17:12  (MSK)
>>не круче а изящнее :-)
>
>open(LG,">/tmp/test_sms") || die$!;
>
>А что будет, если несколько процессов будут одновременно писать в это файл
>?

реализовать через lock файл

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру