2014-10-17 5 views
-1

저는 지금이 문제에 많은 어려움을 겪고 있습니다.SmtpClient로 메일을 보낼 때 오류가 발생했습니다.

내 Google Apps 계정을 사용하여 mvc 응용 프로그램과 메일을 보내려고합니다. 그러나 나는 오류가 계속 발생합니다. 내가 사용하는 설정은 중요하지 않습니다. 나는 ssl과 인증을 켠 상태에서 포트 465와 587을 모두 사용해 보았다. 465와 I는 운영 시간 초과를 얻고 587으로 나는이 메시지를 얻을 :

SMTP 서버가 보안 연결을 필요로하거나 클라이언트가 인증되지 되었다. 서버 응답은 다음과 같습니다. 5.5.1 인증 필요

운이 좋지 않은 방화벽을 돌리려고했습니다. 또한 2 단계 인증을 사용하지 않으려 고했지만 인증을받지 못했습니다. 나는 사용자 이름과 암호 (사용자 이름은 사용자 @ 도메인처럼 형성되는 것처럼 모든 obvius 물건을 확인했다

public static void SendMail(MailAddress from, MailAddress to, string subject, string body) { 
    MailMessage mail = new MailMessage(); 
    mail.From = from; 
    mail.To.Add(to); 
    mail.Subject = subject; 
    mail.Body = body; 


    SmtpClient client; 
    if (Settings.Port != null) 
     client = new SmtpClient(Settings.Host, Int32.Parse(Settings.Port)); 
    else 
     client = new SmtpClient(Settings.Host); 

    client.EnableSsl = Settings.UseSSL; 

    client.Timeout = 50000; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 

    if (Settings.UseAuthentication) { 
     client.Credentials = new NetworkCredential(Settings.Username, Settings.Password); 
     client.UseDefaultCredentials = false; 
    } 

    client.Send(mail); 
} 

:

나는 당신이 나를
감사

다음

는 요청에 따라 코드 도움이 될 수 있기를 바랍니다 .com). 또한 설정 클래스가 정상적으로 작동하는지 확인하기 위해 코드를 단계별로 실행했습니다.

+1

SMTP를 통해 전자 메일을 보내고 연결하는 데 사용하는 코드를 표시하십시오 ... downvoted을 얻지 못하면 ...하지만 오류를 보니 잘못된 점을 알려야합니다 ... 당신은 (사용자 이름/비밀 번호) 인증되지 않습니다. –

+0

나는'smtp.Credential = new NetworkCredential (username, password); '에 문제가 있다고 생각하겠다. 코드가 없어도 결코 알 수 없습니다. – Greg

답변

0

문제점이 무엇인지 알아 냈습니다. client.UseDefaultCredentials = false;은 자격 증명을 설정해야합니다. 이제 client.Send 메서드는 예외없이 반환됩니다.

+0

이 게시물을 답으로 다시 쓰고 싶다면 답장으로 쓰시겠습니까? 그 방법은 사람들이 미래에 참조를 위해 이것을 사용할 수 있습니다 :) – Sometowngeek