sendmail 使用不正确的时区

sendmail 使用不正确的时区

我的 CentOS 服务器上运行着 sendmail。服务器设置为 BST 并且 tzdata 正确。

$ date
Tue Jul  2 10:53:56 BST 2013
$ ll /etc/localtime
lrwxrwxrwx 1 root root 33 Jun 28 17:07 /etc/localtime -> /usr/share/zoneinfo/Europe/London

我有一个 bash 脚本在此服务器上运行,它通过 cronjob 发送邮件。 cronjob 设置为每天运行早上 7 点

00 07 * * * sh /root/check_mail_process.sh

日志/var/log/cron显示服务器在指定时间运行作业。

Jul  1 07:00:01 ukibimon01 crond[15407]: (root) CMD (sh /root/check_mail_process.sh)

/etc/mail/sendmail.cf以下设置:

# time zone handling:
#  if undefined, use system default
#  if defined but null, use TZ envariable passed in
#  if defined and non-null, use that info
#O TimeZoneSpec=

此外,该机器上未设置 TZ 变量。

sendmail 使用智能中继。

我还使用智能中继将邮件发送到交换服务器

# "Smart" relay host (may be null)
DSexchange_server_address

问题是我收到邮件了一小时后上午 8 点。 Outlook 的标头信息位于此处:

服务器 (TLS) ID 14.16.324.0; 2013 年 7 月 2 日,星期二07:00:13 +0000
收到:来自 BY2PRD0411HT003.namprd04.prod.outlook.com(IP)
 BY2PRD0411HT005.namprd04.prod.outlook.com (IP) 与 Microsoft SMTP

因此,sendmail 从其他地方获取时间并使用

答案1

你确定你的责任是正确的吗?

with Microsoft SMTP- 它不表示sendmail。

您确定 sendmail 正在您的 CentOS 上接受 127.0.0.1:25 的连接吗?

答案2

服务器在 UTC 上运行。您作为用户的时间表示采用 GMT/BST。

文件中的上午 7 点cron是 0700 UTC,现在(十月初)您将其视为 0800 BST。这对应于您在 Exchange 上收到电子邮件的时间。

答案3

例如,对于太平洋标准时间,您可以按如下方式设置。

我会尝试sendmail.cf

O TimeZoneSpec=PST8PDT

或在sendmail.mc

define(`confTIME_ZONE', `PST8PDT')dnl

相关内容