diff --git a/src/EmailReplyParser/Parser/EmailParser.php b/src/EmailReplyParser/Parser/EmailParser.php index b1c2d5f..97da26a 100644 --- a/src/EmailReplyParser/Parser/EmailParser.php +++ b/src/EmailReplyParser/Parser/EmailParser.php @@ -25,7 +25,10 @@ class EmailParser * * @var string */ - private $signatureRegex = '/(?:^\s*--|^\s*__|^-\w|^-- $)|(?:^Sent from (my|Mail) (?:\s*\w+){1,4}$)|(?:^={30,}$)$/s'; + private $signatureRegex = [ + '/(?:^\s*--|^\s*__|^-\w|^-- $)|(?:^Sent from (my|Mail) (?:\s*\w+){1,4}$)|(?:^={30,}$)$/s', + '/(?:^\s*--|^\s*__|^-\w|^-- $)|(?:^Verstuurd vanaf mijn (?:\s*\w+){1,4}$)|(?:^={30,}$)$/s', + ]; /** * @var string[] @@ -151,7 +154,7 @@ public function setQuoteHeadersRegex(array $quoteHeadersRegex) } /** - * @return string + * @return string[] * @since 2.7.0 */ public function getSignatureRegex() @@ -160,12 +163,12 @@ public function getSignatureRegex() } /** - * @param string $signatureRegex + * @param string[] $signatureRegex * * @return EmailParser * @since 2.7.0 */ - public function setSignatureRegex($signatureRegex) + public function setSignatureRegex(array $signatureRegex) { $this->signatureRegex = $signatureRegex; @@ -205,7 +208,13 @@ private function isQuoteHeader($line) private function isSignature($line) { - return preg_match($this->signatureRegex, $line) ? true : false; + foreach ($this->signatureRegex as $regex) { + if (preg_match($regex, $line)) { + return true; + } + } + + return false; } /** diff --git a/tests/EmailReplyParser/Tests/Parser/EmailParserTest.php b/tests/EmailReplyParser/Tests/Parser/EmailParserTest.php index 1d277d6..4daae26 100644 --- a/tests/EmailReplyParser/Tests/Parser/EmailParserTest.php +++ b/tests/EmailReplyParser/Tests/Parser/EmailParserTest.php @@ -455,7 +455,10 @@ public function testEmailWithFairAmountOfContent() */ public function testCustomSignatureRegex() { - $signatureRegex = '/(?:^\s*--|^\s*__|^-- $)|(?:^Sent from my (?:\s*\w+){1,3})$/s'; + $signatureRegex = [ + '/^DOESNT_MATCH_ANYTHING$/', + '/(?:^\s*--|^\s*__|^-- $)|(?:^Sent from my (?:\s*\w+){1,3})$/s', + ]; $this->parser->setSignatureRegex($signatureRegex); $email = $this->parser->parse($this->getFixtures('email_ls-l.txt')); $fragments = $email->getFragments(); diff --git a/tests/Fixtures/email_iphone_dutch.txt b/tests/Fixtures/email_iphone_dutch.txt new file mode 100644 index 0000000..fde9b18 --- /dev/null +++ b/tests/Fixtures/email_iphone_dutch.txt @@ -0,0 +1,3 @@ +Hier is nog een e-mail + +Verstuurd vanaf mijn iPhone