source: moodle/trunk/fuentes/admin/process_email.php @ 136

Last change on this file since 136 was 136, checked in by mabarracus, 4 years ago

Ported code to xenial

File size: 1.7 KB
Line 
1#!/usr/bin/php -f
2<?php
3
4//error_reporting(0);
5//ini_set('display_errors',0);
6require_once(dirname(dirname(__FILE__)).'/config.php');
7$tmp = explode('@',$_ENV['RECIPIENT']);
8$address = $tmp[0];
9
10// BOUNCE EMAILS TO NOREPLY
11if ($_ENV['RECIPIENT'] == $CFG->noreplyaddress) {
12    $user = new stdClass();
13    $user->email = $_ENV['SENDER'];
14
15    if (!validate_email($user->email)) {
16        die();
17    }
18
19    $site = get_site();
20    $subject = get_string('noreplybouncesubject','moodle',format_string($site->fullname));
21    $body = get_string('noreplybouncemessage','moodle',format_string($site->fullname))."\n\n";
22
23    $fd = fopen('php://stdin','r');
24    if ($fd) {
25        while(!feof($fd)) {
26            $body .=  fgets($fd);
27        }
28        fclose($fd);
29    }
30
31    $user->id = 0; // to prevent anything annoying happening
32
33    $from->firstname = null;
34    $from->lastname = null;
35    $from->email = '<>';
36    $from->maildisplay = true;
37
38    email_to_user($user,$from,$subject,$body);
39    die ();
40}
41/// ALL OTHER PROCESSING
42// we need to split up the address
43$prefix = substr($address,0,4);
44$mod = substr($address,4,2);
45$modargs = substr($address,6,-16);
46$hash = substr($address,-16);
47
48if (substr(md5($prefix.$mod.$modargs.$CFG->siteidentifier),0,16) != $hash) {
49    die("HASH DIDN'T MATCH!\n");
50}
51list(,$modid) = unpack('C',base64_decode($mod.'=='));
52
53if ($modid == '0') { // special
54    $modname = 'moodle';
55}
56else {
57    $modname = $DB->get_field("modules", "name", array("id"=>$modid));
58    include_once('mod/'.$modname.'/lib.php');
59}
60$function = $modname.'_process_email';
61
62if (!function_exists($function)) {
63    die();
64}
65$fd = fopen('php://stdin','r');
66if (!$fd) {
67    exit();
68}
69
70while(!feof($fd)) {
71    $body .= fgets($fd);
72}
73
74$function($modargs,$body);
75
76fclose($fd);
77
78
79
80
Note: See TracBrowser for help on using the repository browser.