summaryrefslogtreecommitdiff
path: root/src/controllers/NewMessage.class.php
blob: e7783855ab4493d7488d756c8c2d66ed4e3876a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
  /*
class NewMessage extends Controller {
$cmdline = isset($argv[0]); // called from the command line
@$method = $_SERVER['REQUEST_METHOD']; // What HTTP method was used
if ( ($method=='PUT') || ($method=='POST') || $cmdline ) {
	// We're going to be uploading a new message.
	
	// so uniqid isn't 'secure', it doesn't need to be, it's to prevent
	// random collisions.
	$tmpfile = "$BASE/tmp/".uniqid(getmypid().'.');
	$infile = ($cmdline?'php://stdin':'php://input');
	$out = fopen($tmpfile, "w");
	$in  = fopen($infile, "r");
	while ($data = fread($in, 1024))
		fwrite($out, $data);
	fclose($out);
	fclose($in);
	//apache_request_headers()
	require_once('MimeMailParser.class.php');
	$parser = new MimeMailParser();
	$parser->setPath($tmpfile);
	$id = preg_replace('/<(.*)>/', '$1',
	                   $parser->getHeader('message-id'));
	$id = str_replace('/', '', $id); // for security reasons
	$msg_file = "$BASE/msg/$id";
	rename($tmpfile, $msg_file);
	
	if (!$cmdline) {
		$m->status('201 Created');
		header("Location: ".$m->baseUrl().'messages/'.$id);
	}
	exit();
}

}
  */