Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
	// $Id: mail.php 28 2007-09-28 12:28:21Z tiefland $
3
 
4
	//Variablen initialisieren
5
	$headers 	= array();
6
	$email 		= (isset($_POST["email"])) ? $_POST["email"] : "info@weban.de";
7
	$Email=$_POST["Email"];
8
 
9
	// Existiert ein Email Schutz?
10
	if (eregi("[a-z0-9]{32}",$_POST["_to"])) {
11
		// Ja, dann ueberpruefe ob Konfiguration existiert
12
		if (file_exists('emailconfig.default.inc.php')) {
13
			include('emailconfig.default.inc.php');
14
		}
15
		// Existiert auch diese Adresse
16
		if ($GLOBALS['email_config'][$_POST["_from"]]) {
17
 
18
			$_from 		= $GLOBALS['email_config'][$_POST["_from"]];
19
			$_to   		= $GLOBALS['email_config'][$_POST["_to"]];
20
			$recipient	= $GLOBALS['email_config'][$_POST["recipient"]];
21
 
22
			if (eregi("[a-z0-9]{32}",$_POST["_subject"])) {
23
			 	$_subject	= "Anfrage ueber: " . $GLOBALS['email_config'][$_POST["_subject"]];
24
			 	$subject	= "Anfrage ueber: " . $GLOBALS['email_config'][$_POST["_subject"]];
25
		    } else {
26
		    	if ($_POST["_subject"]) {
27
					$_subject	= $_POST["_subject"];
28
					$subject	= $_POST["_subject"];
29
		    	} else {
30
			 		$_subject	= "Anfrage ueber: " . $GLOBALS['email_config'][$_POST["_subject"]];
31
			 		$subject	= "Anfrage ueber: " . $GLOBALS['email_config'][$_POST["_subject"]];
32
		    	}
33
		    }
34
 
35
		} else {
36
			die("Sie haben einen Fehlehaften Code uebergeben.<br>");
37
		}
38
 
39
	} else {
40
		$_from 		= (isset($_POST["_from"])) 		? 	$_POST["_from"] 	: 	$email;
41
		$_to   		= (isset($_POST["_to"])) 		? 	$_POST["_to"] 		: 	$email;
42
		$recipient	= (isset($_POST["recipient"])) 	? 	$_POST["recipient"] : 	$email;
43
		$_subject	= (isset($_POST["_subject"])) 	? 	$_POST["_subject"]	:	"";
44
		$subject	= (isset($_POST["subject"])) 	? 	$_POST["subject"]	:	"";
45
	}
46
 
47
	$_target	= (isset($_POST["_target"])) 	? 	$_POST["_target"]	:	"";
48
	$redirect   = (isset($_POST["redirect"])) 	? 	$_POST["redirect"]	:	"";
49
	$submit		= false;
50
	$cc		= false;
51
	$bcc		= false;
52
	$sub    	= false;
53
	$ref		= $_SERVER["HTTP_REFERER"];
54
	$start 		= strpos ($ref, "//");
55
 
56
	// Referrer überprüfen
57
	if ($start < 0) {
58
		$start = 0;
59
	} else {
60
		$start = $start + 2;
61
	}
62
	$stop = strpos ($ref, "/", $start);
63
 
64
	// Variable $_POST auf "submit" als Array-Key überprüfen
65
	// falls nicht gefunden ==> ENDE
66
 
67
/*	foreach ($_POST as $key => $value)
68
	{
69
		if (strtolower($key)=="submit")
70
		{
71
			$submit=true;
72
		}
73
	}
74
 
75
	if (substr ($ref, $start, $stop-$start) != $_SERVER["SERVER_NAME"]||!$submit)
76
*/
77
 
78
	if (substr ($ref, $start, $stop-$start) != $_SERVER["SERVER_NAME"]) {
79
		exit;
80
	}
81
 
82
	//Body zusammenbauen
83
	foreach(array_keys($_POST) as $elem) {
84
		if ($elem[0] == "_") {
85
			unset($_POST[$elem]);
86
		} else {
87
			if (is_array($_POST[$elem])) {
88
				$_POST[$elem] = implode($_POST[$elem],", ");
89
			}
90
			$_POST[$elem] = $elem.": ".$_POST[$elem];
91
		}
92
	}
93
	$body=implode($_POST,"\n");
94
 
95
	// TO Adresse ermitteln
96
	if (!$_to) {
97
		$_to = $recipient;
98
	}
99
	if (!$_subject) {
100
		$_subject  = $subject;
101
	}
102
 
103
	// FROM Adresse ermitteln
104
	if (!$_from) {
105
		if ($email) {
106
			$_from = $email;
107
		} else {
108
			$_from = $_to;
109
		}
110
	}
111
 
112
	// Weiterleitungsziel ermitteln
113
	if (!$_target) {
114
		if ($redirect) {
115
			$_target = $redirect;
116
		} else {
117
//			$_target = "danke.htm?ref=".urlencode($ref);
118
			$_target = "danke.htm";
119
		}
120
	} else {
121
		$_target = dirname($ref)."/".$_target;
122
	}
123
 
124
	// Header überpruefen (muessen leer sein)
125
	if (count($headers)) {
126
		//Header wurde manipuliert!
127
		$keys=array("cc","cC","Cc","CC");
128
		foreach($keys as $key) {
129
			if (isset($headers[$key])) {
130
				unset($headers[$key]);
131
				$cc=true;
132
			}
133
			if (isset($headers["b".$key])) {
134
				unset($headers["b".$key]);
135
				$bcc=true;
136
			}
137
			if (isset($headers["B".$key])) {
138
				unset($headers["B".$key]);
139
				$bcc=true;
140
			}
141
		}
142
	}
143
 
144
	// erweiterte Infos erstellen
145
	$linkInfo      =  readlink ( $_SERVER["SCRIPT_FILENAME"] );
146
	$infoString    = "PHP_SELF: "			.	$_SERVER["PHP_SELF"]			."\n";
147
	$infoString   .= "SCRIPT_NAME: "		.	$_SERVER["SCRIPT_NAME"]			."\n";
148
	$infoString   .= "REQUEST_URI: "		.	$_SERVER["REQUEST_URI"]			."\n";
149
	$infoString   .= "SCRIPT_FILENAME: "	.	$_SERVER["SCRIPT_FILENAME"]		."\n";
150
	$infoString   .= "HTTP_REFERER: "		.	$_SERVER["HTTP_REFERER"]		."\n";
151
	$infoString   .= "REMOTE_ADDR: "		.	$_SERVER["REMOTE_ADDR"]			."\n";
152
	$infoString   .= "SYM_LINK_INFO: "		.	$linkInfo						."\n";
153
	$infoString   .= "EMPFAENGER: "			.	$_to							."\n";
154
 
155
	$infoString   =   "\n\n=============================================\n\n"
156
                  .   $infoString
157
				  .   "\n=============================================\n";
158
 
159
	// ende erweiterte Infos
160
 
161
	// Verschiedene Variablen ueberpruefen, ob "TO: BCC: CC: oder FROM: Eintraege vorkommen
162
	$ereg1 = eregi("/(from\:)|(to\:)|(cc\:)|(bcc\:)/", $_to);
163
	$ereg2 = eregi("/(from\:)|(to\:)|(cc\:)|(bcc\:)/", $body);
164
	$ereg3 = eregi("/(from\:)|(to\:)|(cc\:)|(bcc\:)/", $_subject);
165
 
166
	// Eventuell vorhandenes "SUBJECT"-Feld im Header löschen
167
	foreach($headers as $header => $value) {
168
		if (strtolower($headers)=="subject") {
169
			unset($headers[$header]);
170
			$sub=true;
171
		}
172
	}
173
 
174
	//Body erweitern, falls manipulierte Werte gefunden wurden!
175
	$body .= ($ereg1) ? "To enthielt zusaetzliche Angaben ('FROM:', 'TO:', 'CC:', 'BCC:')!\n" : "";
176
	$body .= ($ereg2) ? "Body enthielt zusaetzliche Angaben ('FROM:', 'TO:', 'CC:', 'BCC:')!\n" : "";
177
	$body .= ($ereg3) ? "Subject enthielt zusaetzliche Angaben ('FROM:', 'TO:', 'CC:', 'BCC:')!\n" : "";
178
	$body .= ($sub)   ? "Header enthielt zusaetzliche Subject-Angabe!\n" : "";
179
	$body .= ($bcc)   ? "Header enthielt BCC-Angabe!\n" : "";
180
	$body .= ($cc)    ? "Header enthielt CC-Angabe!\n" : "";
181
 
182
	//Pruefen, ob kein HTML in Nachricht vorkommt
183
	$no_html=($body==strip_tags($body));
184
 
185
	// Header-Array zusammenbauen
186
	$headers["From"]	= $_from;
187
	$headers["Subject"]	= $_subject;
188
 
189
	// PEAR-Klasse "Mail" einbinden und "mail"-Objekt erstellen
190
	require_once "Mail.php";
191
	$mail=Mail::factory("mail");
192
 
193
	// Pruefen, ob kein Fehler aufgetreten ist
194
	if (!PEAR::isError($mail)) {
195
		// Wenn alles OK ist
196
		if (!$ereg1 && !$ereg2 && !$ereg3 && !$bcc && !$cc && !$sub && $no_html) {
197
			//Mail verschicken
198
			$mail->send($_to, $headers, $body);
199
			$body=("\nSehr geehrte Teilnehmerin, sehr geehrter Teilnehmer, \n\nvielen Dank für Ihre Anfrage. Ihre Anmeldung wird nun bearbeitet. Weitere Infos erhalten Sie in Kürze. \n\nBei Rückfragen stehen wir Ihnen gerne zur Verfügung. \n\nIhr Team der AIOD Deutschland \n\n____________________________________________________________\n\nMit freundlichen Grüßen / Best regards\n\nMelanie Trant\n\nAIOD Deutschland e. V. \nPostfach 990142\n47298 Duisburg\n\nTelefon: +49 2065-25 76 21\nFax: +49 2065-25 76 22\n\nMobil: +49 172-289 78 21\n\ninfo@aiod-ev.de\nwww.aiod-ev.de");
200
			$mail->send($Email, $headers, $body);
201
		}
202
 
203
		// Nachricht erweitern
204
		$body = implode("\n",$headers)."\n$_to\n$body";
205
 
206
		// Nachrichtenkopie verschicken
207
		if (!$ereg1 && !$ereg2 && !$ereg3 && !$bcc && !$cc && !$sub && $no_html) {
208
			$headers["Subject"]="Nachrichtenkopie auf $SERVER_NAME: ".$headers["Subject"];
209
		} else {
210
			$headers["Subject"]="Nachrichtenkopie auf $SERVER_NAME: ".$headers["Subject"]." - Spam-Nachricht";
211
		}
212
 
213
		//$mail->send("markus@weban.de",   $headers, $body.$infoString);
214
		//$mail->send("niewerth@weban.de", $headers, $body.$infoString);
215
		//$mail->send("tiefland@weban.de", $headers, $body.$infoString);
216
	}
217
 
218
	// Auf Danke-Seite weiterleiten
219
	header("Location: $_target");
220
?>