SPF (Структура политики отправителя), SRS (Схема перезаписи отправителя), BATV (Проверка тега адреса отказа) переформатируют и кодируют информацию в SMTP-адресе, например ::
firstname.lastname@senderdomain.com
prvs=xxxxxxxxxx=firstname.lastname@senderdomain.com
srs0=g4ui=qu=senderdomain.com=firstname.lastname@serverdomain.com
Что я пытаюсь сделать: в нашем блокировщике спама (производном от Microsoft. Exchange.Data.Transport.SmtpReceiveAgent) мы сравниваем отправителя входящего электронного письма с нашим локальным белым списком, который содержит простые ванильные адреса электронной почты. Вот как мы извлекаем адрес отправителя из RcptCommandEventArgs:
SenderSmtp = rcptArgs.MailItem.FromAddress.ToString();
SenderSmtp содержит все нежелательные теги и теперь должен быть преобразован обратно в обычный адрес электронной почты для поиска в нашем белом списке.
Существует ли библиотека C # или кодовый код в C #, который надежно удаляет всю эту информацию с данного адреса и возвращает исходный SMTP-адрес?