При приеме qmail ставит в заголовке время не локальное а по Гринвичу т.е. -000
Что и где нужно сделать ?
тут читай
http://cr.yp.to/qmail/faq.html
>При приеме qmail ставит в заголовке
>время не локальное а по
>Гринвичу т.е. -000
>Что и где нужно сделать ?
>
Проверь свою настройку локал тайм.
--->Патчишь и пересобираешь qmail, у меня с этим
--->патчем qmail 1.03 работает около года.
--->
--->patch -s -p1 < patch-to-patch-file
--- qmail-1.03.orig/date822fmt.c Tue Apr 15 15:05:23 1997
+++ qmail-1.03/date822fmt.c Fri Apr 18 00:39:41 1997
@@ -1,3 +1,4 @@
+#include <time.h>
#include "datetime.h"
#include "fmt.h"
#include "date822fmt.h"
@@ -12,18 +13,51 @@
{
unsigned int i;
unsigned int len;
+ time_t now;
+ datetime_sec utc;
+ datetime_sec local;
+ struct tm *tm;
+ struct datetime new_dt;
+ int minutes;
+
+ utc = datetime_untai(dt);
+ now = (time_t)utc;
+ tm = localtime(&now);
+ new_dt.year = tm->tm_year;
+ new_dt.mon = tm->tm_mon;
+ new_dt.mday = tm->tm_mday;
+ new_dt.hour = tm->tm_hour;
+ new_dt.min = tm->tm_min;
+ new_dt.sec = tm->tm_sec;
+ local = datetime_untai(&new_dt);
+
len = 0;
- i = fmt_uint(s,dt->mday); len += i; if (s) s += i;
+ i = fmt_uint(s,new_dt.mday); len += i; if (s) s += i;
i = fmt_str(s," "); len += i; if (s) s += i;
- i = fmt_str(s,montab[dt->mon]); len += i; if (s) s += i;
+ i = fmt_str(s,montab[new_dt.mon]); len += i; if (s) s += i;
i = fmt_str(s," "); len += i; if (s) s += i;
- i = fmt_uint(s,dt->year + 1900); len += i; if (s) s += i;
+ i = fmt_uint(s,new_dt.year + 1900); len += i; if (s) s += i;
i = fmt_str(s," "); len += i; if (s) s += i;
- i = fmt_uint0(s,dt->hour,2); len += i; if (s) s += i;
+ i = fmt_uint0(s,new_dt.hour,2); len += i; if (s) s += i;
i = fmt_str(s,":"); len += i; if (s) s += i;
- i = fmt_uint0(s,dt->min,2); len += i; if (s) s += i;
+ i = fmt_uint0(s,new_dt.min,2); len += i; if (s) s += i;
i = fmt_str(s,":"); len += i; if (s) s += i;
- i = fmt_uint0(s,dt->sec,2); len += i; if (s) s += i;
- i = fmt_str(s," -0000\n"); len += i; if (s) s += i;
+ i = fmt_uint0(s,new_dt.sec,2); len += i; if (s) s += i;
+
+ if (local < utc) {
+ minutes = (utc - local + 30) / 60;
+ i = fmt_str(s," -"); len += i; if (s) s += i;
+ i = fmt_uint0(s,minutes / 60,2); len += i; if (s) s += i;
+ i = fmt_uint0(s,minutes % 60,2); len += i; if (s) s += i;
+ }
+ else {
+ minutes = (local - utc + 30) / 60;
+ i = fmt_str(s," +"); len += i; if (s) s += i;
+ i = fmt_uint0(s,minutes / 60,2); len += i; if (s) s += i;
+ i = fmt_uint0(s,minutes % 60,2); len += i; if (s) s += i;
+ }
+
+ i = fmt_str(s,"\n"); len += i; if (s) s += i;
+
return len;
}