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 "network-bsd" Network.BSD (getHostName)
|
||||||
|
|
||||||
import Data.Time.Zones (TZ, utcTZ, utcToLocalTimeTZ, timeZoneForUTCTime)
|
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 Data.Time.Format (rfc822DateFormat)
|
||||||
|
|
||||||
import Network.HaskellNet.SMTP (SMTPConnection)
|
import Network.HaskellNet.SMTP (SMTPConnection)
|
||||||
@ -515,8 +515,24 @@ setDateCurrent = setDate =<< liftIO getCurrentTime
|
|||||||
setDate :: (MonadHandler m, YesodMail (HandlerSite m)) => UTCTime -> MailT m ()
|
setDate :: (MonadHandler m, YesodMail (HandlerSite m)) => UTCTime -> MailT m ()
|
||||||
setDate time = do
|
setDate time = do
|
||||||
tz <- mailDateTZ
|
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
|
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 ()
|
setMailSmtpData :: (MonadHandler m, YesodMail (HandlerSite m), MonadThrow m) => MailT m ()
|
||||||
|
|||||||
Reference in New Issue
Block a user