Upload via GUI (346 Dateien)
This commit is contained in:
+27
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
// Minimaler SMTP-Server für Tests: php smtp_server.php <port> <logdatei>. Nimmt jede Mail an und schreibt "MAIL <empfänger>" ins Log.
|
||||
$port = (int) ($argv[1] ?? 0);
|
||||
$log = (string) ($argv[2] ?? '');
|
||||
$srv = stream_socket_server("tcp://127.0.0.1:$port", $errno, $errstr);
|
||||
if (!$srv) { fwrite(STDERR, "Server nicht gestartet: $errstr\n"); exit(1); }
|
||||
file_put_contents($log, "READY\n", FILE_APPEND);
|
||||
while ($c = @stream_socket_accept($srv, 120)) {
|
||||
stream_set_timeout($c, 10);
|
||||
fwrite($c, "220 test ESMTP\r\n");
|
||||
$to = '';
|
||||
$data = false;
|
||||
while (($line = fgets($c)) !== false) {
|
||||
$l = rtrim($line, "\r\n");
|
||||
if ($data) {
|
||||
if ($l === '.') { $data = false; file_put_contents($log, "MAIL $to\n", FILE_APPEND); fwrite($c, "250 queued\r\n"); }
|
||||
continue;
|
||||
}
|
||||
$u = strtoupper($l);
|
||||
if (str_starts_with($u, 'EHLO')) fwrite($c, "250 test\r\n");
|
||||
elseif (str_starts_with($u, 'RCPT TO:')) { $to = trim(substr($l, 8), ' <>'); fwrite($c, "250 ok\r\n"); }
|
||||
elseif ($u === 'DATA') { $data = true; fwrite($c, "354 go\r\n"); }
|
||||
elseif ($u === 'QUIT') { fwrite($c, "221 bye\r\n"); break; }
|
||||
else fwrite($c, "250 ok\r\n");
|
||||
}
|
||||
fclose($c);
|
||||
}
|
||||
Reference in New Issue
Block a user