Absenderpruefung erweitern und Postfach auflisten koennen

Die Pruefung suchte woertlich nach "@paypal.de" oder "@paypal.com". Mails
aus einer Versand-Subdomain (e.paypal.de) oder einer Landesvariante
(paypal.at, paypal.co.uk) fielen damit als not_from_paypal durch. Geprueft
wird jetzt die Domain der Absenderadresse an ihrem Ende - "paypal.de.
beispiel.com" ist damit weiterhin kein PayPal, waere bei einer Textsuche
aber durchgerutscht.

check-imap-support.php listet zusaetzlich die letzten 15 Mails mit
Absender, Empfaengerzeilen und Betreff auf und sagt je Mail, ob der
Absender als PayPal gilt. Damit laesst sich ein not_from_paypal in einem
Lauf klaeren statt zu raten. Rein lesend: OP_READONLY, kein \Seen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-21 22:35:51 +02:00
co-authored by Claude Opus 5
parent d7de0d92cf
commit 43d0fc5578
3 changed files with 86 additions and 1 deletions
+21
View File
@@ -234,6 +234,27 @@ try {
$fremd = paypal_process_raw($pdo, $empfaengerA, 'no-reply@beispiel.de', $mailA);
paypal_flow_assert('Mail von fremdem Absender wird abgelehnt', ($fremd['status'] ?? '') === 'not_from_paypal', $failures, $passes);
// Absenderpruefung: PayPal verschickt aus mehreren Domains, eine
// Lookalike-Domain darf aber nie durchgehen.
foreach ([
'"PayPal" <service@paypal.de>' => true,
'service@paypal.com' => true,
'PayPal <service@e.paypal.de>' => true,
'noreply@paypal.at' => true,
'service@paypal.co.uk' => true,
'betrug@paypal.de.beispiel.com' => false,
'paypal@beispiel.de' => false,
'clemens@beispiel.de' => false,
'' => false,
] as $absender => $erwartet) {
paypal_flow_assert(
'Absender "' . ($absender === '' ? '(leer)' : $absender) . '" gilt ' . ($erwartet ? 'als' : 'nicht als') . ' PayPal',
paypal_from_is_paypal($absender) === $erwartet,
$failures,
$passes
);
}
$ohneToken = paypal_process_raw($pdo, 'zahlungen@kaffeeliste.de', 'service@paypal.de', $mailA);
paypal_flow_assert('Adresse ohne Token wird abgelehnt', ($ohneToken['status'] ?? '') === 'no_token', $failures, $passes);