Skip to content

Commit ca4f8b2

Browse files
author
Srdjan Marjanovic
committed
Recognize Outlook for Mac. Strip signature on Outlook for Mac
1 parent 20cb774 commit ca4f8b2

2 files changed

Lines changed: 22 additions & 11 deletions

File tree

src/ActiveCollab/EmailReplyExtractor.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,11 @@ public static function detectMailer(array $headers)
9595
} else if (strpos($headers['x-mailer'], 'Apple Mail') !== false) {
9696
return self::APPLE_MAIL;
9797
}
98+
} else if (isset($headers['user-agent'])) {
99+
if (strpos($headers['user-agent'], 'Microsoft-MacOutlook') !== false) {
100+
return self::OUTLOOK;
101+
}
98102
} else if (isset($headers['message-id'])) {
99-
100103
if (strpos($headers['message-id'], '@mail.gmail.com') !== false) {
101104
return self::GOOGLE_MAIL;
102105
} else if (strpos($headers['message-id'], '@smtp.hushmail.com')) {
@@ -115,6 +118,7 @@ public static function detectMailer(array $headers)
115118
} else if (isset($headers['mime-version']) && strpos($headers['mime-version'], 'Apple Message framework') !== false) {
116119
return self::APPLE_MAIL;
117120
}
121+
118122
return self::GENERIC;
119123
}
120124

@@ -127,8 +131,9 @@ private static function getHeadersRelevantForMailerDetectionEml(Parser &$parser)
127131
return self::filterHeaders([
128132
'x-mailer' => $parser->getHeader('x-mailer'),
129133
'message-id' => $parser->getHeader('message-id'),
130-
'Received' => $parser->getHeader('received'),
131-
'Mime-Version' => $parser->getHeader('mime-version'),
134+
'received' => $parser->getHeader('received'),
135+
'mime-version' => $parser->getHeader('mime-version'),
136+
'user-agent' => $parser->getHeader('user-agent'),
132137
]);
133138
}
134139

@@ -141,8 +146,9 @@ private static function getHeadersRelevantForMailerDetection(array $headers)
141146
return self::filterHeaders([
142147
'x-mailer' => $headers['x-mailer'],
143148
'message-id' => $headers['message_id'],
144-
'Received' => $headers['Received'],
145-
'Mime-Version' => $headers['Mime-Version'],
149+
'received' => $headers['Received'],
150+
'mime-version' => $headers['Mime-Version'],
151+
'user-agent' => $headers['User-Agent'],
146152
]);
147153
}
148154

src/ActiveCollab/EmailReplyExtractor/Extractor/OutlookExtractor.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,6 @@
66
*/
77
final class OutlookExtractor extends Extractor
88
{
9-
public function processLines()
10-
{
11-
parent::processLines();
12-
self::stripSignature();
13-
}
14-
159
/**
1610
* Overrides Extractor::stripSignature()
1711
*/
@@ -46,4 +40,15 @@ protected function getOriginalMessageSplitters()
4640
]);
4741
}
4842

43+
/**
44+
* Strip default Outlook for Mac signature
45+
* @param string $html
46+
* @return string
47+
*/
48+
static function toPlainText($html)
49+
{
50+
$html = preg_replace('/<div id="MAC_OUTLOOK_SIGNATURE".+<\/div>/','', $html);
51+
return parent::toPlainText($html);
52+
}
53+
4954
}

0 commit comments

Comments
 (0)