Condividi tramite


MailAddress applica la convalida per i punti consecutivi

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.

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

Vedere anche