The OpenNET Project / Index page

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

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

"код возврата у sendmail как получить?"
Сообщение от HAN Искать по авторуВ закладки on 23-Дек-02, 13:48  (MSK)
Hi!
Вот нужно для обработки правил прокмейла узнать как sendmail завершил отправку письма - успешно или неуспешно. Как получить от него код возврата и в каком виде он будет (0/1, код ошибки или ...)?

Удачи!
HAN

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

 Оглавление

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

1. "RE: код возврата у sendmail как получить?"
Сообщение от lavr emailИскать по авторуВ закладки on 23-Дек-02, 14:02  (MSK)
>Hi!
>Вот нужно для обработки правил прокмейла узнать как sendmail завершил отправку письма
>- успешно или неуспешно. Как получить от него код возврата и
>в каком виде он будет (0/1, код ошибки или ...)?

в виде что по RFC, их(rfc) всего два: rfc821 и rfc1893, если не ошибаюсь
и правильно понял

>Удачи!
>HAN

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

2. "RE: код возврата у sendmail как получить?"
Сообщение от HAN Искать по авторуВ закладки on 25-Дек-02, 17:47  (MSK)
>>Hi!
>>Вот нужно для обработки правил прокмейла узнать как sendmail завершил отправку письма
>>- успешно или неуспешно. Как получить от него код возврата и
>>в каком виде он будет (0/1, код ошибки или ...)?
>
>в виде что по RFC, их(rfc) всего два: rfc821 и rfc1893, если
>не ошибаюсь
>и правильно понял

Небыло времени на чтение конференции, поэтому так поздно отвечаю - нужно просто запустить сендмайл из командной строки и узнать отправилось ли письмо или был отлуп. Ведь есть у него коды возврата, но вот как это дело получить? Как сформировать командную строку или как кинуть этот код на STDOUT?

Удачи!
HAN


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

3. "RE: код возврата у sendmail как получить?"
Сообщение от lavr emailИскать по авторуВ закладки on 25-Дек-02, 17:51  (MSK)
>>>Hi!
>>>Вот нужно для обработки правил прокмейла узнать как sendmail завершил отправку письма
>>>- успешно или неуспешно. Как получить от него код возврата и
>>>в каком виде он будет (0/1, код ошибки или ...)?
>>
>>в виде что по RFC, их(rfc) всего два: rfc821 и rfc1893, если
>>не ошибаюсь
>>и правильно понял
>
>Небыло времени на чтение конференции, поэтому так поздно отвечаю - нужно просто
>запустить сендмайл из командной строки и узнать отправилось ли письмо или
>был отлуп. Ведь есть у него коды возврата, но вот как
>это дело получить? Как сформировать командную строку или как кинуть этот
>код на STDOUT?

а man sendmail не помогает?

>Удачи!
>HAN

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

4. "RE: код возврата у sendmail как получить?"
Сообщение от HAN Искать по авторуВ закладки on 25-Дек-02, 18:04  (MSK)
Hi!
>>запустить сендмайл из командной строки и узнать отправилось ли письмо или
>>был отлуп. Ведь есть у него коды возврата, но вот как
>>это дело получить? Как сформировать командную строку или как кинуть этот
>>код на STDOUT?
>
>а man sendmail не помогает?
>
Есть у него такая опция в командной строке ErrorMode=x, но _где_ его "поймать" этот ответ? Кроме лога конечно, нужно сразу "на лету", тк. по этому ответу будут соответственные действия с письмом (уже не этой сессией сендмейла).

Удачи!
HAN

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

5. "RE: код возврата у sendmail как получить?"
Сообщение от Dima emailИскать по авторуВ закладки on 25-Дек-02, 22:44  (MSK)
EX_OK          0       /* successful termination */                            
EX__BASE       64      /* base value for error messages */                      
EX_USAGE       64      /* command line usage error */                          
EX_DATAERR     65      /* data format error */                                  
EX_NOINPUT     66      /* cannot open input */                                  
EX_NOUSER      67      /* addressee unknown */                                  
EX_NOHOST      68      /* host name unknown */                                  
EX_UNAVAILABLE 69      /* service unavailable */                                
EX_SOFTWARE    70      /* internal software error */                            
EX_OSERR       71      /* system error (e.g., can't fork) */                    
EX_OSFILE      72      /* critical OS file missing */                          
EX_CANTCREAT   73      /* can't create (user) output file */                    
EX_IOERR       74      /* input/output error */                                
EX_TEMPFAIL    75      /* temp failure; user is invited to retry */            
EX_PROTOCOL    76      /* remote error in protocol */                          
EX_NOPERM      77      /* permission denied */                                  
EX_CONFIG      78      /* configuration error */                                
EX__MAX        78      /* maximum listed value */

Ты емеешь в виду эти или какие.?

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

6. "RE: код возврата у sendmail как получить?"
Сообщение от HAN Искать по авторуВ закладки on 25-Дек-02, 23:40  (MSK)
>EX_OK          0  
>     /* successful termination */
>EX__BASE       64    
> /* base value for error messages */
>EX_USAGE       64    
> /* command line usage error */
>EX_DATAERR     65      /*
>data format error */
>EX_NOINPUT     66      /*
>cannot open input */
>EX_NOUSER      67      
>/* addressee unknown */
>EX_NOHOST      68      
>/* host name unknown */
>EX_UNAVAILABLE 69      /* service unavailable */
>EX_SOFTWARE    70      /* internal
>software error */
>EX_OSERR       71    
> /* system error (e.g., can't fork) */
>EX_OSFILE      72      
>/* critical OS file missing */
>EX_CANTCREAT   73      /* can't create
>(user) output file */
>EX_IOERR       74    
> /* input/output error */
>EX_TEMPFAIL    75      /* temp
>failure; user is invited to retry */
>EX_PROTOCOL    76      /* remote
>error in protocol */
>EX_NOPERM      77      
>/* permission denied */
>EX_CONFIG      78      
>/* configuration error */
>EX__MAX        78    
>  /* maximum listed value */
>
>Ты емеешь в виду эти или какие.?

Это я знаю, исходники смотрел. Ну если еще можно будет по конкретным ошибкам, то это будет отлично. Пока мне хотя-бы 0 или 1 (отправлено письмо или нет). Только еще раз уточню - я не пишу программу которая может использовать библиотеки сендмейла, мне нужно отдавать ответ из отработки сенмейла в командной строке (вобщем в шелле sh/csh).

Удачи!
HAN

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

7. "RE: код возврата у sendmail как получить?"
Сообщение от Dima emailИскать по авторуВ закладки on 26-Дек-02, 01:16  (MSK)
Ну так и задавай коды ошибок, которые тут есть.

#!/usr/bin/perl  -w
my ($arg_1) = $ARGV[0];
my ($dir) = $ARGV[1];
my ($arg_2) = $ARGV[2];
my ($email) = $ARGV[3];

open(F,">>/tmp/test");
print FILE sprintf("\n%s %s %s %s\n", $arg_1, $dir,$arg_2l,,$email);
whyle(<stdin>)
{
   print FILE $_;
}
close (F);

exit 67; #  к примеру,

67 - Неизвестный пользователь
В итоге сендмейл получит от Прграммы код возврата и сгенерирует ответ.

У меня других нет :-(
Ими и пользовался когда прогу разбирал и переписывал, для мейлера.

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

8. "RE: код возврата у sendmail как получить?"
Сообщение от HAN Искать по авторуВ закладки on 26-Дек-02, 02:05  (MSK)
>Ну так и задавай коды ошибок, которые тут есть.
>
>#!/usr/bin/perl  -w
>my ($arg_1) = $ARGV[0];
>my ($dir) = $ARGV[1];
>my ($arg_2) = $ARGV[2];
>my ($email) = $ARGV[3];
>
>open(F,">>/tmp/test");
>print FILE sprintf("\n%s %s %s %s\n", $arg_1, $dir,$arg_2l,,$email);
>whyle(<stdin>)
>{
>   print FILE $_;
>}
>close (F);
>
>exit 67; #  к примеру,
>
>67 - Неизвестный пользователь
>В итоге сендмейл получит от Прграммы код возврата и сгенерирует ответ.
>
>У меня других нет :-(
>Ими и пользовался когда прогу разбирал и переписывал, для мейлера.

Hi!
Что-то ты тут сильно закрутил, вроде почистил этот код ошибки исправил - ну и что это дает? даю ему на вход командную строку вида  
script sendmail -O NoRecipientAction=Add-To user@domain.com - идет вход в бесконечный цикл... Или как этот скрипт применять? Поясни плиз.
Вот мне нужно только поймать что ответит сендмейл на командную строку (это пример) echo "123 123"  | sendmail -O NoRecipientAction=Add-To user@domain.com. Может и твой пример что-то подобное делает но я что-то не соображу... Подскажи, плиз.

Удачи!
HAN


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

9. "RE: код возврата у sendmail как получить?"
Сообщение от Dima emailИскать по авторуВ закладки on 26-Дек-02, 11:03  (MSK)
Этот скрипт, суть самый прорстой мейлер, коим является mail.local, procmail
Если глянуть в нутрь sendmail.cf на предмет строки mail.local
то можно увидеть наличие програмки которая валяется в каталоге .../sbin/ или где то там, дополненая ключами.
тот есть на вход скрипту передаются параметры такие как email (более детально надо глянуть) и прочие ключики,
просле чего сам сендмеил на stdin вываливает все что к нему пришло в качестве письма.
в ответ, по завершениее цикла while (<stdin>)
сендмейл ожидает код возврата (один из тех что приводились выше)
и на основании этого решает что делать далее.
либо Говорить что письмо получено (status=sent) либо писать отлуп.

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


Удалить

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




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

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