diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2011-06-01 12:15:26 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net ; true> | 2011-06-01 12:15:26 -0700 |
commit | 9ad57b3d8d1000f17962bb0ba00a8958b2f141db (patch) | |
tree | 515f444d429b999516e530e5d35fcaac6424f1a9 /scripts/forward_emails.php | |
parent | a070cbe9627fcc29ef2f91b8f7578080203e6ad1 (diff) |
Added scripts, email addresses, other minor modifications
Diffstat (limited to 'scripts/forward_emails.php')
-rw-r--r-- | scripts/forward_emails.php | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/scripts/forward_emails.php b/scripts/forward_emails.php new file mode 100644 index 0000000..bd4846f --- /dev/null +++ b/scripts/forward_emails.php @@ -0,0 +1,96 @@ +#!/usr/bin/php +<?php + +/* Foursquare Community Site + * + * Copyright (C) 2011 Foursquare Church. + * + * Developers: Jesse Morgan <jmorgan@foursquarestaff.com> + * + */ + +require_once "../htdocs/src/base.inc.php"; + +// Read the email +$fd = fopen("php://stdin", "r"); +$email = ""; +while (!feof($fd)) { + $email .= fread($fd, 1024); +} +fclose($fd); + +// Parse the email +$headers = ""; +$to = ""; +$from = ""; +$subject = ""; +$message = ""; + +$splitmsg = split("\n", $email); + +$inheaders = true; +foreach ($splitmsg as $line) { + if ($inheaders) { + // This is a header + if ($line == '') { + $inheaders = false; + + } else { + $header = split(':', $line, 2); + + switch (strtolower(trim($header[0]))) { + case 'from': + $from = $header[1]; + break; + + case 'subject': + $subject = $header[1]; + break; + + case 'delivered-to': + $to = $header[1]; + break; + + default: + $headers .= "$line\n"; + } + } + + } else { + // Messsage line + $message .= "$line\n"; + } +} + + +// Get the post id and post. +preg_match("/posting-(.+)@.+/", $to, $identifiers); + +if (!isset($identifiers[1]) or !is_numeric($identifiers[1])) { + mailFailure("Invalid id"); +} + +$id = $identifiers[1]; + +$post = Post::getById($id); + +if (!$post or $post->getStage() != 'approved') { + mailFailure('Invalid post'); +} + +// Valid Post... forward the message. +$newsubject = "[" . $CONFIG['sitetitle'] . "] $subject"; + +if (mail($post->getEmail(), $newsubject, $message, $headers)) { + exit 0; + +} else { + exit 2; +} + +function mailFailure($message='') { + echo "5.1.1 $message\n"; + exit 1; +} + +?> |