Author: Derick Rethans (derickr)
Date: 2026-01-20T16:27:40Z

Commit: 
https://github.com/php/web-master/commit/30deedb750707f573f4fab7972723b2e913e6977
Raw diff: 
https://github.com/php/web-master/commit/30deedb750707f573f4fab7972723b2e913e6977.diff

Add endpoint for fetching all the email aliases for the SMTP server

Changed paths:
  A  public/fetch/email-aliases.php


Diff:

diff --git a/public/fetch/email-aliases.php b/public/fetch/email-aliases.php
new file mode 100644
index 0000000..74cf3bb
--- /dev/null
+++ b/public/fetch/email-aliases.php
@@ -0,0 +1,45 @@
+<?php
+
+use App\DB;
+
+require __DIR__ . '/../../vendor/autoload.php';
+
+function error($text, $status)
+{
+    switch((int)$status) {
+    default:
+    case 500:
+        header("HTTP/1.0 500 Internal server error");
+        break;
+
+    case 404:
+        header("HTTP/1.0 404 Not Found");
+        break;
+
+    case 401:
+        header("HTTP/1.0 401 Unauthorized");
+        break;
+    }
+    exit;
+}
+
+// original token defined in ansible vault and in fetch-aliases-from-main.sh 
script on php-smtp4:~/emailsync
+(!isset($_GET['token']) || sha1($_GET['token']) != 
"1789734af16d0fe009375e1f4dbe11e02c5919bc") && error("token not correct.", 401);
+
+$pdo = DB::connect();
+
+$stmt = $pdo->prepare("SELECT username, email FROM users WHERE enable = 1 AND 
email != '' ORDER BY username");
+if (!$stmt->execute()) {
+    error("This error should never happen", 500);
+}
+
+$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
+if (!$results) {
+    error("This should never happen either", 404);
+}
+
+echo "username\temail\n";
+
+foreach ($results as $result) {
+    echo $result['username'], "\t", $result['email'], "\n";
+}

Reply via email to