Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начиная с .NET 10, MailAddress класс применяет более строгую проверку адресов электронной почты. Адреса электронной почты с последовательными точками в локальной части (например, test..address@example.com) или доменной части (например, address@test..example.com) теперь считаются недопустимыми. Это изменение соответствует поведению формата адреса электронной почты, заданного MailAddress в RFC 5322 и RFC 2822.
Представленная версия
.NET 10 (предварительная версия 1)
Предыдущее поведение
MailAddress Ранее класс разрешил адреса электронной почты с последовательными точками в локальных или доменных частях, даже если такие адреса недопустимы в соответствии со спецификацией адреса электронной почты.
Например, следующий код выполняется без исключения:
using System.Net.Mail;
var email = new MailAddress("test..address@example.com");
Console.WriteLine(email.Address); // Output: test..address@example.com
Новое поведение
Начиная с .NET 10, MailAddress класс применяет более строгую проверку и создает FormatException исключение при анализе адреса электронной почты с последовательными точками в локальных или доменных частях.
Например, следующий код теперь вызывает FormatExceptionисключение:
using System.Net.Mail;
var email = new MailAddress("test..address@example.com"); // Throws FormatException
Сообщение об исключении указывает, что адрес электронной почты недопустим.
Тип разрушающего изменения
Это изменение поведения.
Причина изменения
Это изменение гарантирует соответствие формату адреса электронной почты, указанному в RFC 5322 и RFC 2822. Согласно этим стандартам, адреса электронной почты с последовательными точками в локальных или доменных частях недопустимы. Предыдущее поведение разрешения таких адресов было неверным и может привести к непредвиденным проблемам в приложениях, использующих MailAddress проверку электронной почты.
Рекомендуемое действие
Если приложение использует MailAddress класс для анализа адресов электронной почты, просмотрите код, чтобы убедиться, что он не передает адреса электронной почты с последовательными точками в локальных или доменных частях. При обнаружении таких адресов обновите приложение для обработки вызываемого FormatException адреса.
Например, можно использовать try-catch блок для обработки недопустимых адресов электронной почты:
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}");
}
Кроме того, можно проверить адреса электронной почты с помощью регулярного выражения перед передачей их конструктору MailAddress .
Затронутые API
- Конструктор MailAddress(String)
- Конструктор MailAddress(String, String)
- Конструктор MailAddress(String, String, Encoding)