| 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 |
?>
|