Патч, который добавляет в лог запись даты и врмени отправки письма.
Чтобы запись в лог работала, sSMTP должен быть сконфигурен с ключом --enable-logfile.
Я также добавляю еще и ключ --enable-ssl, чтобы в логе не было ругани
Unable to set UseTLS="NO"
Unable to set UseTLSCert="NO"
Тестировалось на sSMTP 2.62, размер файла ssmtp.c 42980 байт.
Чтобы пропатчить, используем в директории, где лежит ssmtp.c, команду
patch -p0 < ssmtp.patch
Содержимое файла ssmtp.patch:
--- ssmtp.c 2008-03-06 22:01:22.000000000 +0200 +++ ssmtp.c 2009-03-15 00:02:11.000000000 +0200 @@ -39,6 +39,9 @@ #include <fcntl.h> #include "xgethostname.h" +// added by avz 2008-03-14 +#include <time.h> + bool_t have_date = False; bool_t have_from = False; #ifdef HASTO_OPTION @@ -112,12 +115,12 @@ #ifdef LOGFILE FILE *fp; - if((fp = fopen("/tmp/ssmtp.log", "a")) != (FILE *)NULL) { + if((fp = fopen("/var/log/ssmtp.log", "a")) != (FILE *)NULL) { (void)fprintf(fp, "%s\n", buf); (void)fclose(fp); } else { - (void)fprintf(stderr, "Can't write to /tmp/ssmtp.log\n"); + (void)fprintf(stderr, "Can't write to /var/log/ssmtp.log\n"); } #endif @@ -1408,6 +1411,9 @@ uid_t uid; bool_t minus_v_save; int timeout = 0; + // added by avz 2009-03-14 + time_t event_time; + struct tm *tms; outbytes = 0; ht = &headers; @@ -1663,8 +1669,12 @@ (void)smtp_okay(sock, buf); (void)close(sock); - log_event(LOG_INFO, "Sent mail for %s (%s) uid=%d username=%s outbytes=%d", - from_strip(uad), buf, uid, pw->pw_name, outbytes); + // added by avz 2009-03-14 + time(&event_time); + tms=localtime(&event_time); + // log_event(LOG_INFO, "Sent mail for %s (%s) uid=%d username=%s outbytes=%d", from_strip(uad), buf, uid, pw->pw_name, outbytes); + 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", + 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); return(0); }
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
You must be logged in to post a comment.