Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
A partire da .NET 10, la MailAddress classe applica una convalida più rigorosa degli indirizzi di posta elettronica. Gli indirizzi di posta elettronica con punti consecutivi nella parte locale (ad esempio, test..address@example.com) o parte di dominio (ad esempio, address@test..example.com) sono ora considerati non validi. Questa modifica allinea il comportamento di con il formato dell'indirizzo MailAddress di posta elettronica specificato in RFC 5322 e RFC 2822.
Versione introdotta
.NET 10 Preview 1
Comportamento precedente
In precedenza, la MailAddress classe consentiva gli indirizzi di posta elettronica con punti consecutivi nelle parti locali o di dominio, anche se tali indirizzi non sono validi in base alla specifica dell'indirizzo di posta elettronica.
Ad esempio, il codice seguente viene eseguito senza generare un'eccezione:
using System.Net.Mail;
var email = new MailAddress("test..address@example.com");
Console.WriteLine(email.Address); // Output: test..address@example.com
Nuovo comportamento
A partire da .NET 10, la MailAddress classe applica una convalida più rigorosa e genera un'eccezione FormatException quando analizza un indirizzo di posta elettronica con punti consecutivi nelle parti locali o di dominio.
Ad esempio, il codice seguente ora genera un'eccezione FormatException:
using System.Net.Mail;
var email = new MailAddress("test..address@example.com"); // Throws FormatException
Il messaggio di eccezione indica che l'indirizzo di posta elettronica non è valido.
Tipo di cambiamento che interrompe la compatibilità
Questa modifica è una modifica funzionale.
Motivo della modifica
Questa modifica garantisce la conformità al formato dell'indirizzo di posta elettronica specificato in RFC 5322 e RFC 2822. In base a questi standard, gli indirizzi di posta elettronica con punti consecutivi nelle parti locali o di dominio non sono validi. Il comportamento precedente di consentire tali indirizzi non è corretto e potrebbe causare problemi imprevisti nelle applicazioni che si basano su MailAddress per la convalida della posta elettronica.
Azione consigliata
Se la tua applicazione si basa sulla classe MailAddress per analizzare gli indirizzi email, esamina il codice per assicurarti che non passi indirizzi email con punti consecutivi nella parte locale o di dominio. Se vengono rilevati indirizzi di questo tipo, aggiorna la tua applicazione per gestire l'eccezione FormatException che viene ora generata.
Ad esempio, è possibile usare un try-catch blocco per gestire indirizzi di posta elettronica non validi:
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}");
}
In alternativa, è possibile convalidare gli indirizzi di posta elettronica usando un'espressione regolare prima di passarli al MailAddress costruttore.
Le API interessate
- Costruttore MailAddress(String)
- Costruttore MailAddress(String, String)
- Costruttore MailAddress(String, String, Encoding)