type.inbound
and network.whois(sender.email.domain).days_old < 90
and any([subject.base, body.current_thread.text],
regex.icontains(.,
'unusual (?:sign[-\s]in|login)',
'sign[-\s]in activity',
'account security (?:notice|alert)'
)
)
and 2 of (
strings.icontains(body.current_thread.text, 'ip address:'),
strings.icontains(body.current_thread.text, 'device:'),
strings.icontains(body.current_thread.text, 'no action is required'),
regex.icontains(body.current_thread.text, 'location.{0,30}:'),
regex.icontains(body.current_thread.text, '(?:date\s(?:and|&)\s)?time:')
)
Playground
Test against your own EMLs or sample data.