Как я могу «пропинговать» SMTP-сервер, чтобы я мог проверить, действительна ли учетная запись / пароль? - PullRequest
4 голосов
/ 29 января 2010

Я пытаюсь создать небольшой учебник по отправителю электронной почты WPF, но не хочу делиться им, если в нем есть эта вопиющая ошибка.

В настоящее время так и происходит.

  1. пользователь вводит имя пользователя и пароль.
  2. метка 'loginstatus' меняется на "Logged in" независимо от того, является ли он бредовым или нет.
  3. Тело сообщения и отправка в поля включены.
  4. пользователь нажал кнопку «Отправить», и, если возникла исключительная ситуация (например, неверное имя пользователя / пароль), окно сообщения показывает его, и loginstatus изменяется обратно на выход из системы.

Это очень, очень неправильно, и я хочу это исправить.

Как я могу просто "пинговать", чтобы проверить правильность учетных данных (без отправки тестового электронного письма).

Я использую порт smtp.gmail.com 587

Редактировать Вот как я отправляю электронные письма.

var client = new SmtpClient("smtp.gmail.com", 587)
        {
            Credentials = new NetworkCredential(username, password),
            EnableSsl = true
        };

        try
        {
            client.Send(fromEmail, toEmail, subject, body);
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);                
        }       

Ответы [ 2 ]

1 голос
/ 30 января 2010

Вы не можете сделать это с System.Net.Mail. Вы должны либо свернуть свой собственный, либо использовать сторонний продукт (бесстыдная вилка: как у меня - www.aspnetmx.com )

0 голосов
/ 29 января 2010

Если у вас есть контроль над SMTP-связью, вы можете выполнить вход только для проверки имени пользователя и пароля без отправки сообщения.

...