From 2bf3cc6fc3a1255a878778f05e1b0d745c5059c6 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Sun, 13 Jun 2010 06:15:25 -0400 Subject: [PATCH] - Use user's timezone in Date header, not server's timezone (#1486119) --- CHANGELOG | 1 + program/steps/mail/func.inc | 26 +++++++++++++++++++++++++- program/steps/mail/sendmail.inc | 2 +- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 2b418d8..d81d1cb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== +- Use user's timezone in Date header, not server's timezone (#1486119) - Add option to set separate footer for HTML messages (#1486660) - Add real SMTP error description to displayed error messages (#1485927) - Fix some IMAP errors handling when opening the message (#1485443) diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index defb6f9..c748914 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -1478,7 +1478,7 @@ // compose headers array $headers = array( - 'Date' => date('r'), + 'Date' => rcmail_user_date(), 'From' => $sender, 'To' => $message->headers->mdn_to, 'Subject' => rcube_label('receiptread') . ': ' . $message->subject, @@ -1523,6 +1523,30 @@ return false; } +// Returns RFC2822 formatted current date in user's timezone +function rcmail_user_date() +{ + global $CONFIG; + + // get user's timezone + if ($CONFIG['timezone'] === 'auto') { + console($_SESSION['timezone']); + $tz = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : date('Z')/3600; + } + else { + $tz = $CONFIG['timezone']; + if ($CONFIG['dst_active']) + $tz++; + } + + $date = time() + $tz * 60 * 60; + $date = gmdate('r', $date); + $date = preg_replace('/[+-][0-9]{4}$/', sprintf('%+05d', $tz * 100), $date); + + return $date; +} + + function rcmail_search_filter($attrib) { global $OUTPUT, $CONFIG; diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index f94950e..e229234 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -287,7 +287,7 @@ $headers['Received'] = $http_header; } -$headers['Date'] = date('r'); +$headers['Date'] = rcmail_user_date(); $headers['From'] = rcube_charset_convert($identity_arr['string'], RCMAIL_CHARSET, $message_charset); $headers['To'] = $mailto; -- Gitblit v1.9.1