2010-01-29 2 views
4

작은 WPF 전자 메일 보낸 사람 자습서를 작성하려고하지만이 눈부신 버그가있는 경우 공유하고 싶지 않습니다.어떻게 계정/암호가 유효한지 확인할 수 있도록 SMTP 서버에 'ping'을 수행 할 수 있습니까?

현재 상황이 발생합니다.

  1. 사용자 이름과 암호를 입력하십시오.
  2. 레이블 'loginstatus'는 기복인지 여부에 관계없이 '로그인'으로 변경됩니다.
  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);     
     }  
+0

어떻게 전자 메일을 보내시겠습니까? SMTP가있는 로그인은 다른 것보다 먼저 로그인해야하며 MAIL FROM 명령 이전에 유효하지 않은 자격 증명을 알리는 것으로 생각됩니다. – Thomas

+0

@ John McClane : 안타깝게도 모든 논리는 System.Net.Mail 네임 스페이스의 내부 클래스에 있으므로 SmtpClient 클래스를 사용하여 로그온 부분을 처리 할 수는 없습니다. –

답변

1

System.Net.Mail에서는이 작업을 수행 할 수 없습니다. 자신 만의 제품을 사용하거나 제 3 자 제품 (뻔뻔한 플러그 : 내 제품 - www.aspnetmx.com)을 사용해야합니다.

0

당신은 메시지를 전송하지 않고 사용자 이름과 암호를 테스트하기 위해 로그인 부분을 할 수있는 SMTP 통신을 통해 제어 할 수 있습니다합니다.

+0

로그인 부분 만 어떻게해야합니까? –

+1

제출 포트 (587)를 사용 중이므로 필요한 명령은 EHLO, STARTTLS 및 AUTH입니다. STARTTLS를 사용하여 SSL로 연결을 업그레이드해야하므로 수동으로 구현하는 것은 비용이 많이 듭니다. http://tools.ietf.org/html/rfc5321 (EHLO), http://tools.ietf.org/html/rfc3207 (STARTTLS) 및 http://tools.ietf.org/html/rfc2554 (AUTH) –

관련 문제