есть хороший парсер для отформатированного адреса электронной почты rfc822 - PullRequest
0 голосов
/ 14 мая 2019

обычно эти письма приходят в форме имени.Я пытаюсь использовать MailBoxAddress.Parse , чтобы взять имя и адрес электронной почты.Я получаю слишком много ошибок здесь, потому что кажется, что люди пишут свое имя в любом формате, который они хотят.Например, следующее вызывает ошибку:

Alert: xyz's Weather Now - West Association <emailxx@insignificantstylise.com>
Auto Insurance @ full-auto-coverage.com <emailxx@bigwigfeast.com>

1 Ответ

1 голос
/ 14 мая 2019

Я бы порекомендовал сделать это:

static MailboxAddress ParseAddr (string input)
{
    int lt = input.IndexOf ('<');

    if (lt == -1)
        throw new FormatException ("Invalid address format");

    int gt = input.IndexOf ('>', lt);

    if (gt == -1)
        throw new FormatException ("Invalid address format");

    var name = input.Substring (0, lt).TrimEnd ();
    var addr = input.Substring (lt + 1, gt - (lt + 1));

    return new MailboxAddress (name, addr);
}
...