Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
À compter de .NET 10, la MailAddress classe applique une validation plus stricte des adresses e-mail. Les adresses e-mail avec des points consécutifs dans la partie locale (par exemple, test..address@example.com) ou une partie de domaine (par exemple, address@test..example.com) sont désormais considérées comme non valides. Cette modification aligne le comportement de MailAddress avec le format d'adresses e-mail spécifié dans RFC 5322 et RFC 2822.
Version introduite
.NET 10 Preview 1
Comportement précédent
Auparavant, la MailAddress classe autorisait les adresses e-mail avec des points consécutifs dans les parties locales ou de domaine, même si ces adresses ne sont pas valides en fonction de la spécification de l’adresse e-mail.
Par exemple, le code suivant s’exécute sans lever d’exception :
using System.Net.Mail;
var email = new MailAddress("test..address@example.com");
Console.WriteLine(email.Address); // Output: test..address@example.com
Nouveau comportement
À compter de .NET 10, la MailAddress classe applique une validation plus stricte et lève une FormatException fois qu’elle analyse une adresse e-mail avec des points consécutifs dans les parties locales ou de domaine.
Par exemple, le code suivant lève désormais un FormatException:
using System.Net.Mail;
var email = new MailAddress("test..address@example.com"); // Throws FormatException
Le message d’exception indique que l’adresse e-mail n’est pas valide.
Type de changement cassant
Ce changement est un changement de comportement.
Raison de la modification
Cette modification garantit la conformité au format d’adresse e-mail spécifié dans RFC 5322 et RFC 2822. Selon ces normes, les adresses e-mail avec des points consécutifs dans les parties locales ou de domaine ne sont pas valides. Le comportement précédent de l’autorisation de ces adresses était incorrect et pourrait entraîner des problèmes inattendus dans les applications qui s’appuient sur MailAddress la validation par e-mail.
Action recommandée
Si votre application s’appuie sur la MailAddress classe pour analyser les adresses e-mail, passez en revue votre code pour vous assurer qu’il ne passe pas d’adresses e-mail avec des points consécutifs dans les parties locales ou de domaine. Si de telles adresses sont rencontrées, mettez à jour votre application pour gérer ce FormatException qui est maintenant déclenché.
Par exemple, vous pouvez utiliser un try-catch bloc pour gérer les adresses e-mail non valides :
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}");
}
Vous pouvez également valider les adresses e-mail à l’aide d’une expression régulière avant de les transmettre au MailAddress constructeur.
API affectées
- MailAddress(String) constructeur
- MailAddress(String, String) constructeur
- MailAddress(String, String, Encoding) constructeur