fix(mail): use only RFC822-timezones
This commit is contained in:
parent
717cf1ddfd
commit
59b8bb982d
20
src/Mail.hs
20
src/Mail.hs
@ -89,7 +89,7 @@ import qualified Data.Binary as Binary
|
||||
import "network-bsd" Network.BSD (getHostName)
|
||||
|
||||
import Data.Time.Zones (TZ, utcTZ, utcToLocalTimeTZ, timeZoneForUTCTime)
|
||||
import Data.Time.LocalTime (ZonedTime(..))
|
||||
import Data.Time.LocalTime (ZonedTime(..), TimeZone(..))
|
||||
import Data.Time.Format (rfc822DateFormat)
|
||||
|
||||
import Network.HaskellNet.SMTP (SMTPConnection)
|
||||
@ -515,8 +515,24 @@ setDateCurrent = setDate =<< liftIO getCurrentTime
|
||||
setDate :: (MonadHandler m, YesodMail (HandlerSite m)) => UTCTime -> MailT m ()
|
||||
setDate time = do
|
||||
tz <- mailDateTZ
|
||||
let timeStr = formatTime defaultTimeLocale rfc822DateFormat $ ZonedTime (utcToLocalTimeTZ tz time) (timeZoneForUTCTime tz time)
|
||||
let timeStr = formatTime defaultTimeLocale rfc822DateFormat $ ZonedTime (utcToLocalTimeTZ tz time) (rfc822zone $ timeZoneForUTCTime tz time)
|
||||
replaceMailHeader "Date" . Just $ pack timeStr
|
||||
where
|
||||
rfc822zone tz'
|
||||
| tz' `elem` rfc822zones = tz'
|
||||
| otherwise = tz' { timeZoneName = "" }
|
||||
rfc822zones =
|
||||
[ TimeZone 0 False "UT"
|
||||
, TimeZone 0 False "GMT"
|
||||
, TimeZone (-5 * 60) False "EST"
|
||||
, TimeZone (-4 * 60) True "EDT"
|
||||
, TimeZone (-6 * 60) False "CST"
|
||||
, TimeZone (-5 * 60) True "CDT"
|
||||
, TimeZone (-7 * 60) False "MST"
|
||||
, TimeZone (-6 * 60) True "MDT"
|
||||
, TimeZone (-8 * 60) False "PST"
|
||||
, TimeZone (-7 * 60) True "PDT"
|
||||
]
|
||||
|
||||
|
||||
setMailSmtpData :: (MonadHandler m, YesodMail (HandlerSite m), MonadThrow m) => MailT m ()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user