E-Mail-Adressen: Umlaute im lokalen Teil bei der Eingabe abweisen
Log-Analyse 26.08. (P1-4): Adressen wie "ruediger@..." mit Umlaut im lokalen Teil lehnt der Mailer ab; Checkout-Bestaetigung und Abo-Erinnerung scheiterten. Registrierung, Checkout, Kunden- und Profilformulare pruefen jetzt mit email:filter. Die Abo-Erinnerung ueberspringt bestehende Adressen dieser Art mit einem Log-Eintrag statt einer Transport-Exception. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7daebf32eb
commit
323024f65d
10 changed files with 24 additions and 12 deletions
|
|
@ -51,6 +51,18 @@ class AboSendExecutionReminder extends Command
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Symfony Mailer lehnt Nicht-ASCII im local-part ab. Vorab pruefen, damit
|
||||||
|
// im Log die Adresse statt einer Transport-Exception steht.
|
||||||
|
if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
$skipped++;
|
||||||
|
Log::channel('abo_order')->error('AboSendExecutionReminder: Empfaengeradresse nicht versandfaehig', [
|
||||||
|
'abo_id' => $abo->id,
|
||||||
|
'email' => $email,
|
||||||
|
]);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ($dryRun) {
|
if ($dryRun) {
|
||||||
$sent++;
|
$sent++;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ class AuthController extends Controller
|
||||||
{
|
{
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'name' => 'required|string',
|
'name' => 'required|string',
|
||||||
'email' => 'required|string|email|unique:users',
|
'email' => 'required|string|email:filter|unique:users',
|
||||||
'password' => 'required|string|confirmed'
|
'password' => 'required|string|confirmed'
|
||||||
]);
|
]);
|
||||||
$user = new User([
|
$user = new User([
|
||||||
|
|
|
||||||
|
|
@ -236,7 +236,7 @@ class ShoppingUserController extends Controller
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'billing_email' => 'required|string|email',
|
'billing_email' => 'required|string|email:filter',
|
||||||
'billing_firstname' => 'required|string',
|
'billing_firstname' => 'required|string',
|
||||||
'billing_lastname' => 'required|string',
|
'billing_lastname' => 'required|string',
|
||||||
'billing_address' => 'required|string',
|
'billing_address' => 'required|string',
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class RegisterController extends Controller
|
||||||
{
|
{
|
||||||
return Validator::make($data, [
|
return Validator::make($data, [
|
||||||
'name' => 'required|string|max:255',
|
'name' => 'required|string|max:255',
|
||||||
'email' => 'required|string|email|max:255|unique:users',
|
'email' => 'required|string|email:filter|max:255|unique:users',
|
||||||
'password' => 'required|string|min:6|confirmed',
|
'password' => 'required|string|min:6|confirmed',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,7 @@ class CustomerController extends Controller
|
||||||
'billing_salutation' => 'required',
|
'billing_salutation' => 'required',
|
||||||
'billing_firstname' => 'required',
|
'billing_firstname' => 'required',
|
||||||
'billing_lastname' => 'required',
|
'billing_lastname' => 'required',
|
||||||
'billing_email' => 'required|email',
|
'billing_email' => 'required|email:filter',
|
||||||
'billing_address' => 'required',
|
'billing_address' => 'required',
|
||||||
'billing_zipcode' => 'required',
|
'billing_zipcode' => 'required',
|
||||||
'billing_city' => 'required',
|
'billing_city' => 'required',
|
||||||
|
|
|
||||||
|
|
@ -198,7 +198,7 @@ class LeadController extends Controller
|
||||||
'salutation' => 'required',
|
'salutation' => 'required',
|
||||||
'first_name' => 'required',
|
'first_name' => 'required',
|
||||||
'last_name' => 'required',
|
'last_name' => 'required',
|
||||||
'email' => 'required|string|email|max:255|unique:users',
|
'email' => 'required|string|email:filter|max:255|unique:users',
|
||||||
'email-confirm' => 'required|same:email',
|
'email-confirm' => 'required|same:email',
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,7 @@ class CustomerController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
$rules = [
|
$rules = [
|
||||||
$email => 'required|string|email|max:255|unique:shopping_users,billing_email',
|
$email => 'required|string|email:filter|max:255|unique:shopping_users,billing_email',
|
||||||
];
|
];
|
||||||
$messages = [
|
$messages = [
|
||||||
'unique' => __('validation.custom.unique_email_client'),
|
'unique' => __('validation.custom.unique_email_client'),
|
||||||
|
|
@ -125,7 +125,7 @@ class CustomerController extends Controller
|
||||||
return back()->withErrors($validator)->withInput(Request::all());
|
return back()->withErrors($validator)->withInput(Request::all());
|
||||||
}
|
}
|
||||||
$rules = [
|
$rules = [
|
||||||
$email => 'required|string|email|max:255|unique:users,email',
|
$email => 'required|string|email:filter|max:255|unique:users,email',
|
||||||
];
|
];
|
||||||
$messages = [
|
$messages = [
|
||||||
'unique' => __('validation.custom.unique_email_member'),
|
'unique' => __('validation.custom.unique_email_member'),
|
||||||
|
|
@ -174,7 +174,7 @@ class CustomerController extends Controller
|
||||||
'billing_salutation' => 'required',
|
'billing_salutation' => 'required',
|
||||||
'billing_firstname' => 'required',
|
'billing_firstname' => 'required',
|
||||||
'billing_lastname' => 'required',
|
'billing_lastname' => 'required',
|
||||||
'billing_email' => 'required|email',
|
'billing_email' => 'required|email:filter',
|
||||||
'billing_address' => 'required',
|
'billing_address' => 'required',
|
||||||
'billing_zipcode' => 'required',
|
'billing_zipcode' => 'required',
|
||||||
'billing_city' => 'required',
|
'billing_city' => 'required',
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ class UserUpdateEmailController extends Controller
|
||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
|
|
||||||
$rules = [
|
$rules = [
|
||||||
'email' => 'required|string|email|max:255|unique:users|confirmed|users_update_email:'.Auth::user()->id,
|
'email' => 'required|string|email:filter|max:255|unique:users|confirmed|users_update_email:'.Auth::user()->id,
|
||||||
// 'email-confirm' => 'required|same:email',
|
// 'email-confirm' => 'required|same:email',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -88,7 +88,7 @@ class UserUpdateEmailController extends Controller
|
||||||
];
|
];
|
||||||
|
|
||||||
$rules = [
|
$rules = [
|
||||||
'email' => 'required|string|email|max:255|unique:users|confirmed|users_update_email:'.$user->id,
|
'email' => 'required|string|email:filter|max:255|unique:users|confirmed|users_update_email:'.$user->id,
|
||||||
// 'email-confirm' => 'required|same:email',
|
// 'email-confirm' => 'required|same:email',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -265,7 +265,7 @@ class CheckoutController extends Controller
|
||||||
'billing_salutation' => 'required',
|
'billing_salutation' => 'required',
|
||||||
'billing_firstname' => 'required',
|
'billing_firstname' => 'required',
|
||||||
'billing_lastname' => 'required',
|
'billing_lastname' => 'required',
|
||||||
'billing_email' => 'required|email',
|
'billing_email' => 'required|email:filter',
|
||||||
'billing_address' => 'required',
|
'billing_address' => 'required',
|
||||||
'billing_zipcode' => 'required',
|
'billing_zipcode' => 'required',
|
||||||
'billing_city' => 'required',
|
'billing_city' => 'required',
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ class RegisterController extends Controller
|
||||||
'salutation' => 'required',
|
'salutation' => 'required',
|
||||||
'first_name' => 'required',
|
'first_name' => 'required',
|
||||||
'last_name' => 'required',
|
'last_name' => 'required',
|
||||||
'email' => 'required|string|email|max:255|unique:users',
|
'email' => 'required|string|email:filter|max:255|unique:users',
|
||||||
'email-confirm' => 'required|same:email',
|
'email-confirm' => 'required|same:email',
|
||||||
'password' => 'required|string|min:6|confirmed',
|
'password' => 'required|string|min:6|confirmed',
|
||||||
'password_confirmation' => 'required|string|min:6',
|
'password_confirmation' => 'required|string|min:6',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue