Skip to content

Commit

Permalink
Support regex rules to detect Apple Mail
Browse files Browse the repository at this point in the history
  • Loading branch information
dragoangel committed Jul 11, 2023
1 parent d0c02ee commit a0d7e03
Showing 1 changed file with 20 additions and 3 deletions.
23 changes: 20 additions & 3 deletions rules/regexp/headers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -963,6 +963,26 @@ reconf['OLD_X_MAILER'] = {
group = 'headers',
}

-- Detect Apple Mail
local apple_x_mailer = [[Apple Mail \(((Version )?[1-9]\.[0-9]*|[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)\)]]
reconf['APPLE_MAILER'] = {
description = 'Sent with Apple Mail',
re = string.format('X-Mailer=/^%s/{header}', apple_x_mailer),
score = 0.0,
group = 'headers',
}

-- Detect Apple iPhone/iPad Mail
-- Apple iPhone/iPad Mail X-Mailer contains iOS build number, e. g. 9B206, 16H5, 18G5023c
-- https://en.wikipedia.org/wiki/IOS_version_history
local apple_ios_x_mailer = [[i(?:Phone|Pad) Mail \((?:1[AC]|[34][AB]|5[ABCFGH]|7[A-E]|8[ABCEFGHJKL]|9[AB]|\d{2}[A-Z])\d+[a-z]?\)]]
reconf['APPLE_IOS_MAILER'] = {
description = 'Sent with Apple iPhone/iPad Mail',
re = string.format('X-Mailer=/^%s/{header}', apple_ios_x_mailer),
score = 0.0,
group = 'headers',
}

-- X-Mailer header values which should not occur (in the modern mail) at all
local bad_x_mailers = {
-- header name repeated in the header value
Expand All @@ -978,9 +998,6 @@ local bad_x_mailers = {
-- but starts with 'iPhone Mail' or 'iPad Mail' is likely fake
[[i(?:Phone|Pad) Mail]],
}
-- Apple iPhone/iPad Mail X-Mailer contains iOS build number, e. g. 9B206, 16H5, 18G5023c
-- https://en.wikipedia.org/wiki/IOS_version_history
local apple_ios_x_mailer = [[i(?:Phone|Pad) Mail \((?:1[AC]|[34][AB]|5[ABCFGH]|7[A-E]|8[ABCEFGHJKL]|9[AB]|\d{2}[A-Z])\d+[a-z]?\)]]

reconf['FORGED_X_MAILER'] = {
description = 'Forged X-Mailer header',
Expand Down

0 comments on commit a0d7e03

Please sign in to comment.