Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Начиная с .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)