summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@prodromou.name>2008-07-21 00:37:34 -0400
committerEvan Prodromou <evan@prodromou.name>2008-07-21 00:37:34 -0400
commit1fbafb8524137ea0ad5d0da060aa6bd7e8e691f2 (patch)
tree14a4d1a83110c380d20d83ea88455e75e059ae64
parent184425796be8a39333b210c872e1ab29e5359409 (diff)
scrub mail content a bit more
darcs-hash:20080721043734-84dde-de49b283d468334abd4ee4375042b7f2d003823c.gz
-rwxr-xr-xmaildaemon.php28
1 files changed, 24 insertions, 4 deletions
diff --git a/maildaemon.php b/maildaemon.php
index d55ecde75..49c66b99b 100755
--- a/maildaemon.php
+++ b/maildaemon.php
@@ -186,10 +186,30 @@ class MailerDaemon {
}
function cleanup_msg($msg) {
- # XXX: signatures
- # XXX: quoting
- preg_replace('/\s+/', ' ', $msg);
- return $msg;
+ $lines = explode("\n");
+
+ $output = '';
+
+ foreach ($lines as $line) {
+ // skip quotes
+ if (preg_match('/^\s*>.*$/', $line)) {
+ continue;
+ }
+ // skip start of quote
+ if (preg_match('/^\s*On.*wrote:\s*$/', $line)) {
+ continue;
+ }
+ // skip everything after a sig
+ if (preg_match('/^\s*--+\s*$/', $line) ||
+ preg_match('/^\s*__+\s*$/', $line))
+ {
+ break;
+ }
+ $output .= $line;
+ }
+
+ preg_replace('/\s+/', ' ', $output);
+ return $output;
}
}