2012-05-17 3 views
0

내가 asp.net에서 이메일을 보내기 위해이 코드를 사용하고 (asp.net에서 이메일을 보내는) : 실수는 무엇입니까?

public string SendEmail() 
{ 
    SmtpClient obj = new SmtpClient(); 
    MailMessage Mailmsg = new MailMessage(); 
    Mailmsg.To.Clear(); 

    Recievers = new MailAddressCollection(); 
    Recievers.Add(txtToAddress.Text); 
    SenderName = "Info"; 
    SenderEmail = txtFromAddress.Text; 
    Subject = "subj"; 
    Body = "body"; 
    UseBcc = false; 

    if (UseBcc) 
    { 
     foreach (MailAddress RecieverItem in Recievers) 
     { 
      Mailmsg.Bcc.Add(RecieverItem); 
     } 
    } 
    else 
    { 
     foreach (MailAddress RecieverItem in Recievers) 
     { 
      Mailmsg.To.Add(RecieverItem); 
     } 
    } 

    Mailmsg.From = new MailAddress(SenderEmail, SenderName, System.Text.Encoding.UTF8); 
    Mailmsg.Subject = Subject; 
    Mailmsg.SubjectEncoding = Encoding.UTF8; 
    Mailmsg.BodyEncoding = System.Text.Encoding.UTF8; 
    Mailmsg.IsBodyHtml = false; 

    obj.Host = mail.domain.com; 

    System.Net.NetworkCredential BasicAuthenticationInfo = new System.Net.NetworkCredential("[email protected]main.com", "password"); 

    obj.UseDefaultCredentials = false; 
    obj.Credentials = BasicAuthenticationInfo; 

    Mailmsg.Body = Body; 
    Mailmsg.IsBodyHtml = true; 
    try 
    { 
     obj.Send(Mailmsg); 
     return "sent"; 
    } 
    catch (Exception ex) 
    { 
     return ex.ToString(); 
    } 
} 

올바르게에 정의되어 recievers에 이메일을 보냅니다 System.Net.Mail

를 사용

내 도메인 ([email protected])과 같은 도메인이지만 다른 메일 서버 (예 : [email protected])로 이메일을 보낼 수 없습니다.

내 코드가 잘못 되었나요?

(이려면 SmtpClient 특성과 관련있다? 나는 mail.mydomain.com 에 smtpclient.host 설정하고 내 도메인에 정의되어 내 메일 계정 중 하나의 사용자 이름과 암호를 사용했다)

감사합니다

+0

에서이 문제를 공유 제안? SMTP 서버 관리자 (SMTP 서버에서 프로그램을 차단하여 외부로 보내지 못하게 했습니까?)를 확인 했습니까 –

+0

예 : System.Net.Mail.SmtpFailedRecipientException : 사서함을 사용할 수 없습니다. 서버 응답 : System.Net.Mail.SmtpTransport.SendMail (MailAddress 보낸 사람, MailAddressCollection받는 사람, String deliveryNotify, SmtpFailedRecipientException 및 예외)에서 _Default.SendEmail의 System.Net.Mail.SmtpClient.Send (MailMessage 메시지)에 그러한 사용자가 없습니다.() –

+0

SmtpFailedRecipientException 예외에서 "FailedRecipient"속성을 확인할 수 있습니다. 정확한 수신자 주소가 맞습니까? –

답변

5

Exchange 서버와 관련된 것이어야합니다. 외부 세계와 통신하는 방법을 정의하는 교환 규칙이 있습니다. 이것은 당신이 당신의 교환이 외부 네트워크에 직접 이메일을 보내도록 지원되지 않습니다 의미지고 오류가있는 경우 외부 네트워크

System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server response was: 5.1.1 User unknown 
    at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception) 

에게 이메일을 보내는 동안

http://www.msexchange.org/articles_tutorials/exchange-server-2007/management-administration/restricting-users-send-receive-external-messages-exchange-server-2007.html

당신은 몇 가지 예외를 받고해야합니다. 나는 MS Exchange 전문가가 아니지만 외부 네트워크에 전자 메일을 보낼 수없는 네트워크에 구성된 Exchange 서버를 사용하고 있지만 연락처로 전자 메일을 전달할 수 있습니다.

이 경우 도움이 될 수 있습니다. http://www.petri.co.il/configuring-exchange-2007-send-connectors.htm

또한 난 당신이 예외를 던져 않습니다 https://serverfault.com/

+0

예, 방금 다른 도메인으로 보내는 전자 메일이 Exchange 서버를 차단할 수 있다고 말하고 싶습니다. –

+0

어떻게 해결할 수 있습니까? –

+0

내 대답 확인 좀 더 세부 사항을 추가했습니다. –

관련 문제