Skip to content


Включение в лог sSMTP даты и времени отправки письма

Патч, который добавляет в лог запись даты и врмени отправки письма.
Чтобы запись в лог работала, sSMTP должен быть сконфигурен с ключом --enable-logfile.
Я также добавляю еще и ключ --enable-ssl, чтобы в логе не было ругани

Unable to set UseTLS="NO"
Unable to set UseTLSCert="NO"

Тестировалось на sSMTP 2.62, размер файла ssmtp.c 42980 байт.
Чтобы пропатчить, используем в директории, где лежит ssmtp.c, команду

  1. patch -p0 < ssmtp.patch

Содержимое файла ssmtp.patch:

  1. --- ssmtp.c 2008-03-06 22:01:22.000000000 +0200
  2. +++ ssmtp.c 2009-03-15 00:02:11.000000000 +0200
  3. @@ -39,6 +39,9 @@
  4.  #include <fcntl.h>
  5.  #include "xgethostname.h"
  6.  
  7. +// added by avz 2008-03-14
  8. +#include <time.h>
  9. +
  10.  bool_t have_date = False;
  11.  bool_t have_from = False;
  12.  #ifdef HASTO_OPTION
  13. @@ -112,12 +115,12 @@
  14.  #ifdef LOGFILE
  15.   FILE *fp;
  16.  
  17. - if((fp = fopen("/tmp/ssmtp.log", "a")) != (FILE *)NULL) {
  18. + if((fp = fopen("/var/log/ssmtp.log", "a")) != (FILE *)NULL) {
  19.     (void)fprintf(fp, "%s\n", buf);
  20.     (void)fclose(fp);
  21.   }
  22.   else {
  23. -   (void)fprintf(stderr, "Can't write to /tmp/ssmtp.log\n");
  24. +   (void)fprintf(stderr, "Can't write to /var/log/ssmtp.log\n");
  25.   }
  26.  #endif
  27.  
  28. @@ -1408,6 +1411,9 @@
  29.   uid_t uid;
  30.   bool_t minus_v_save;
  31.   int timeout = 0;
  32. + // added by avz 2009-03-14
  33. +  time_t event_time;
  34. + struct tm *tms;
  35.  
  36.   outbytes = 0;
  37.   ht = &headers;
  38. @@ -1663,8 +1669,12 @@
  39.   (void)smtp_okay(sock, buf);
  40.   (void)close(sock);
  41.  
  42. - log_event(LOG_INFO, "Sent mail for %s (%s) uid=%d username=%s outbytes=%d",
  43. -   from_strip(uad), buf, uid, pw->pw_name, outbytes);
  44. + // added by avz 2009-03-14
  45. + time(&event_time);
  46. +  tms=localtime(&event_time);
  47. + // log_event(LOG_INFO, "Sent mail for %s (%s) uid=%d username=%s outbytes=%d",  from_strip(uad), buf, uid, pw->pw_name, outbytes);
  48. + log_event(LOG_INFO, "%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d sent mail for %s (%s) uid=%d username=%s outbytes=%d",
  49. +   1900+tms->tm_year,1+tms->tm_mon,tms->tm_mday,tms->tm_hour,tms->tm_min,tms->tm_sec, from_strip(uad), buf, uid, pw->pw_name, outbytes);
  50.  
  51.   return(0);
  52.  }
Выгодно приобрести детские игровые комплексы на http://grig.ua/ оптом или в розницу в Украине .

Размещено в категории *nix. Теги: .

Комментариев: 0

Чтобы быть всегда в курсе здесь происходящего, Вы можете подписаться на RSS feed для комментариев на эту заметку.

Some HTML is OK

(required)

(required, but never shared)

, или ответить через trackback.

Страница 1 из 11