Freigeben über


MailAddress erzwingt die Validierung für aufeinanderfolgende Punkte.

Ab .NET 10 erzwingt die Klasse eine MailAddress strengere Überprüfung von E-Mail-Adressen. E-Mail-Adressen mit aufeinanderfolgenden Punkten im lokalen Teil (z. B. test..address@example.com) oder im Domain-Teil (z. B. address@test..example.com) werden jetzt als ungültig angesehen. Die Änderung stimmt das Verhalten von MailAddress mit dem in RFC 5322 und RFC 2822 angegebenen E-Mail-Adressformat überein.

Eingeführt in Version

.NET 10 Preview 1

Vorheriges Verhalten

Zuvor erlaubte die MailAddress Klasse E-Mail-Adressen mit aufeinander folgenden Punkten in den lokalen oder Domänenteilen, obwohl diese Adressen gemäß der E-Mail-Adressspezifikation ungültig sind.

Der folgende Code wird beispielsweise ausgeführt, ohne eine Ausnahme zu auslösen:

using System.Net.Mail;

var email = new MailAddress("test..address@example.com");
Console.WriteLine(email.Address); // Output: test..address@example.com

Neues Verhalten

Ab .NET 10 erzwingt die MailAddress-Klasse eine strengere Überprüfung und wirft eine FormatException, wenn sie eine E-Mail-Adresse mit aufeinanderfolgenden Punkten in den lokalen oder Domänenteilen analysiert.

Der folgende Code gibt zum Beispiel jetzt einen Fehler aus FormatException:

using System.Net.Mail;

var email = new MailAddress("test..address@example.com"); // Throws FormatException

Die Ausnahmemeldung gibt an, dass die E-Mail-Adresse ungültig ist.

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für Änderung

Diese Änderung stellt die Einhaltung des in RFC 5322 und RFC 2822 angegebenen E-Mail-Adressformats sicher. Gemäß diesen Standards sind E-Mail-Adressen mit aufeinander folgenden Punkten in den lokalen oder Domänenteilen ungültig. Das vorherige Verhalten, solche Adressen zuzulassen, war falsch und konnte zu unerwarteten Problemen in Anwendungen führen, die MailAddress zur E-Mail-Validierung verwenden.

Wenn Ihre Anwendung von der MailAddress Klasse abhängt, um E-Mail-Adressen zu analysieren, überprüfen Sie Ihren Code, um sicherzustellen, dass sie keine E-Mail-Adressen mit aufeinander folgenden Punkten in den lokalen Oder Domänenteilen übergibt. Wenn solche Adressen gefunden werden, aktualisieren Sie Ihre Anwendung so, dass das FormatException jetzt ausgelöst wird.

Sie können z. B. einen try-catch Block verwenden, um ungültige E-Mail-Adressen zu verarbeiten:

using System;
using System.Net.Mail;

try
{
    var email = new MailAddress("test..address@example.com");
}
catch (FormatException ex)
{
    Console.WriteLine($"Invalid email address: {ex.Message}");
}

Alternativ können Sie E-Mail-Adressen mithilfe eines regulären Ausdrucks überprüfen, bevor Sie sie an den MailAddress Konstruktor übergeben.

Betroffene APIs

Siehe auch