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, команду
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);
}

Похожие заметки:

  1. История команд в bash с указанием даты и времени
  2. Установка Skype в 64-битную Linux-систему

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

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

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

Some HTML is OK

(required)

(required, but never shared)

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