DMARC: all useful parameters are now configurable.
parent
338b3c0811
commit
14477e5a1f
|
@ -188,6 +188,9 @@ data Action
|
||||||
-- | Change the temporary report size limit for DMARC.
|
-- | Change the temporary report size limit for DMARC.
|
||||||
| DMARC_mail_limit String
|
| DMARC_mail_limit String
|
||||||
|
|
||||||
|
-- | Change the requested report interval.
|
||||||
|
| DMARC_ri String
|
||||||
|
|
||||||
-- | Add a new mail address to the DMARC rua list.
|
-- | Add a new mail address to the DMARC rua list.
|
||||||
| DMARC_rua_Add
|
| DMARC_rua_Add
|
||||||
|
|
||||||
|
@ -261,6 +264,7 @@ type State =
|
||||||
|
|
||||||
, dmarc_mail :: String
|
, dmarc_mail :: String
|
||||||
, dmarc_mail_limit :: Maybe Int
|
, dmarc_mail_limit :: Maybe Int
|
||||||
|
, dmarc_ri :: Maybe Int
|
||||||
|
|
||||||
, dkim :: DKIM.DKIM
|
, dkim :: DKIM.DKIM
|
||||||
, dmarc :: DMARC.DMARC
|
, dmarc :: DMARC.DMARC
|
||||||
|
@ -321,6 +325,7 @@ initialState domain =
|
||||||
|
|
||||||
, dmarc_mail: ""
|
, dmarc_mail: ""
|
||||||
, dmarc_mail_limit: Nothing
|
, dmarc_mail_limit: Nothing
|
||||||
|
, dmarc_ri: Nothing
|
||||||
|
|
||||||
, current_tab: Zone
|
, current_tab: Zone
|
||||||
}
|
}
|
||||||
|
@ -559,14 +564,23 @@ render state
|
||||||
|
|
||||||
, Bulma.hr
|
, Bulma.hr
|
||||||
, Bulma.selection_field "idDMARCfo" "When to send a report" DMARC_fo DMARC.report_occasions_txt (maybe "-" show state.dmarc.fo)
|
, Bulma.selection_field "idDMARCfo" "When to send a report" DMARC_fo DMARC.report_occasions_txt (maybe "-" show state.dmarc.fo)
|
||||||
|
|
||||||
|
, Bulma.hr
|
||||||
|
, Bulma.div_content [Bulma.explanation Explanations.dmarc_contact]
|
||||||
|
, maybe (Bulma.p "There is no address to send aggregated reports to.")
|
||||||
|
(display_dmarc_mail_addresses "Addresses to contact for aggregated reports" DMARC_remove_rua) current_ruas
|
||||||
|
, maybe (Bulma.p "There is no address to send detailed reports to.")
|
||||||
|
(display_dmarc_mail_addresses "Addresses to contact for detailed reports" DMARC_remove_ruf) current_rufs
|
||||||
|
|
||||||
, Bulma.hr
|
, Bulma.hr
|
||||||
, maybe (Bulma.p "There is no address to send aggragated reports to.") (display_dmarc_mail_addresses DMARC_remove_rua) current_ruas
|
|
||||||
, maybe (Bulma.p "There is no address to send detailed reports to.") (display_dmarc_mail_addresses DMARC_remove_ruf) current_rufs
|
|
||||||
, Bulma.box_input "idDMARCmail" "Address to contact" "admin@example.com" DMARC_mail state.dmarc_mail
|
, Bulma.box_input "idDMARCmail" "Address to contact" "admin@example.com" DMARC_mail state.dmarc_mail
|
||||||
, Bulma.box_input "idDMARCmaillimit" "Report size limit (in KB)" "2000" DMARC_mail_limit (maybe "0" show state.dmarc_mail_limit)
|
, Bulma.box_input "idDMARCmaillimit" "Report size limit (in KB)" "2000" DMARC_mail_limit (maybe "0" show state.dmarc_mail_limit)
|
||||||
, Bulma.level [ Bulma.btn "New address for aggregated report" DMARC_rua_Add
|
, Bulma.level [ Bulma.btn "New address for aggregated report" DMARC_rua_Add
|
||||||
, Bulma.btn "New address for specific report" DMARC_ruf_Add
|
, Bulma.btn "New address for specific report" DMARC_ruf_Add
|
||||||
] []
|
] []
|
||||||
|
|
||||||
|
, Bulma.hr
|
||||||
|
, Bulma.box_input "idDMARCri" "Report interval (in seconds)" "86400" DMARC_ri (maybe "0" show state.dmarc_ri)
|
||||||
]
|
]
|
||||||
|
|
||||||
current_ruas = case state._currentRR.dmarc of
|
current_ruas = case state._currentRR.dmarc of
|
||||||
|
@ -742,6 +756,7 @@ handleAction = case _ of
|
||||||
, spf_modifier_v = ""
|
, spf_modifier_v = ""
|
||||||
, dmarc_mail = ""
|
, dmarc_mail = ""
|
||||||
, dmarc_mail_limit = Nothing
|
, dmarc_mail_limit = Nothing
|
||||||
|
, dmarc_ri = Nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveRR rr -> do
|
SaveRR rr -> do
|
||||||
|
@ -829,6 +844,7 @@ handleAction = case _ of
|
||||||
|
|
||||||
DMARC_mail v -> H.modify_ _ { dmarc_mail = v }
|
DMARC_mail v -> H.modify_ _ { dmarc_mail = v }
|
||||||
DMARC_mail_limit v -> H.modify_ _ { dmarc_mail_limit = Just $ fromMaybe 0 $ fromString v }
|
DMARC_mail_limit v -> H.modify_ _ { dmarc_mail_limit = Just $ fromMaybe 0 $ fromString v }
|
||||||
|
DMARC_ri v -> H.modify_ _ { dmarc_ri = fromString v }
|
||||||
DMARC_rua_Add -> do
|
DMARC_rua_Add -> do
|
||||||
state <- H.get
|
state <- H.get
|
||||||
let current_ruas = case state._currentRR.dmarc of
|
let current_ruas = case state._currentRR.dmarc of
|
||||||
|
@ -1124,10 +1140,11 @@ display_modifiers ms =
|
||||||
, HH.td_ [ Bulma.alert_btn "x" (SPF_remove_modifier i) ]
|
, HH.td_ [ Bulma.alert_btn "x" (SPF_remove_modifier i) ]
|
||||||
]
|
]
|
||||||
|
|
||||||
display_dmarc_mail_addresses :: forall w. (Int -> Action) -> Array DMARC.DMARCURI -> HH.HTML w Action
|
display_dmarc_mail_addresses :: forall w. String -> (Int -> Action) -> Array DMARC.DMARCURI -> HH.HTML w Action
|
||||||
display_dmarc_mail_addresses f ms =
|
display_dmarc_mail_addresses t f ms =
|
||||||
Bulma.box_ C.has_background_warning_light
|
Bulma.box_ C.has_background_warning_light
|
||||||
[ Bulma.table [] [ Bulma.dmarc_dmarcuri_table_header, HH.tbody_ $ map render_dmarcuri_row $ attach_id 0 ms] ]
|
[ Bulma.h3 t
|
||||||
|
, Bulma.table [] [ Bulma.dmarc_dmarcuri_table_header, HH.tbody_ $ map render_dmarcuri_row $ attach_id 0 ms] ]
|
||||||
where
|
where
|
||||||
render_dmarcuri_row :: (Tuple Int DMARC.DMARCURI) -> HH.HTML w Action
|
render_dmarcuri_row :: (Tuple Int DMARC.DMARCURI) -> HH.HTML w Action
|
||||||
render_dmarcuri_row (Tuple i m) = HH.tr_
|
render_dmarcuri_row (Tuple i m) = HH.tr_
|
||||||
|
|
|
@ -227,6 +227,12 @@ dmarc_aspf =
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
dmarc_contact :: forall w i. Array (HH.HTML w i)
|
||||||
|
dmarc_contact =
|
||||||
|
[ Bulma.p """
|
||||||
|
In case you want to receive error reports, enter email addresses that should receive either an aggregated report or a detailed report of the occurring errors.
|
||||||
|
"""
|
||||||
|
]
|
||||||
|
|
||||||
dkim_default_algorithms :: forall w i. Array (HH.HTML w i)
|
dkim_default_algorithms :: forall w i. Array (HH.HTML w i)
|
||||||
dkim_default_algorithms =
|
dkim_default_algorithms =
|
||||||
|
|
|
@ -41,7 +41,6 @@ type DMARC
|
||||||
, fo :: Maybe ReportOccasion
|
, fo :: Maybe ReportOccasion
|
||||||
|
|
||||||
-- | rua= Optional. Addresses to which aggregate feedback is to be sent.
|
-- | rua= Optional. Addresses to which aggregate feedback is to be sent.
|
||||||
-- | **TODO**: A size limit can be provided (in KB).
|
|
||||||
, rua :: Maybe (Array DMARCURI)
|
, rua :: Maybe (Array DMARCURI)
|
||||||
|
|
||||||
-- | ruf= Optional. Addresses to which message-specific failure information is to be reported.
|
-- | ruf= Optional. Addresses to which message-specific failure information is to be reported.
|
||||||
|
|
Loading…
Reference in New Issue