2013-04-22 2 views
2

내 웹 사이트에서 전자 메일을 보내는 데 사용할 수있는 일반 사서함이 있습니다. 작동을 멈추고 예외를 throw합니다. 다음은 오류의 스크린 샷입니다.SMTP 예외로 인해 전자 메일을 보내지 못했습니다.

error http://img7.imageshack.us/img7/7227/42097647.png

코드는 잘 작동하면 내가 확인할 수있는 방법,

protected void Submit_Click(object sender, EventArgs e) 
    { 
    if (ValidateBox.Text == "6") 
    { 
     MailMessage message = new MailMessage(); 
     message.From = new MailAddress(EmailBox.Text.ToString()); 
     message.To.Add(new MailAddress("[email protected]")); 
     message.Subject = "Message via CAM Website General Mailbox"; 
     string body = "Name: " + NameBox.Text.ToString() + Environment.NewLine + Environment.NewLine + 
         "Home Tel: " + HomeTelBox.Text.ToString() + Environment.NewLine + Environment.NewLine + 
         "Work Tel: " + WorkTelBox.Text.ToString() + Environment.NewLine + Environment.NewLine + 
         "Comment/Question: " + CommentBox.Text.ToString(); 

     message.Body = body; 


     SmtpClient client = new SmtpClient(); 
     client.Send(message); 

     Response.Redirect("~/Thank-You.aspx"); 
    } 

    else 
    { 
     Label1.Visible = true; 
    } 



} 

이 내 webconfig에 언급 된 SMTP 클라이언트에서 오류가 될 수있다? 감사.

답변

1

Network Credentials을 설정하지 않았습니다. 즉, 이메일을 인증하지 않습니다.

NetworkCredential myCredentials = new NetworkCredential(
"[email protected]","myPassword","mail.myDomainName.com"); 


client.Credentials = myCredentials; 
1

구성상의 문제입니다.

web.config (system.net> mailSettings> smtp)에 지정된 SMTP 서버가 릴레이 용으로 구성되어 있지 않습니다. 당신은이 문제를 해결하는 두 가지 옵션이 있습니다 (! 전용)

  1. 구성 SMTP 서버가 웹 서버의 IP 주소를 를 릴레이를 허용 할 수 있습니다.
  2. SMTP 자격 증명을 SmtpClient와 함께 보냅니다 (자세한 내용은 Dave의 답변 참조).
관련 문제