2010-05-26 4 views
3

asp.net 3.5 및 C#을 사용하고 있습니다.asp.net에서 메일 보내기

나는 그것을 위해 내 호스팅 제공 업체에서 몇 가지 세부 사항을 가지고, asp.net에서 메일을 보내려면이 있습니다

:

  • mail.MySite.net
  • 사용자 이름
  • 비밀번호

그러나 이러한 세부 정보를 통해 메일을 보낼 수 없으며 다음 변경을 수행했습니다. 내 web.config 파일들 :

또한
<system.net> 
    <mailSettings> 
     <smtp> 
      <network 
       host="mail.MySite.net" 
       port="8080" 
       userName="UserName" 
       password="Password" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

, 나는이 기능을 쓰고 뒤에 코드 :

MailMessage mail = new MailMessage("[email protected]", "[email protected]"); 
mail.Subject = "Hi"; 
mail.Body = "Test Mail from ASP.NET"; 
mail.IsBodyHtml = false; 

SmtpClient smp = new SmtpClient(); 
smp.Send(mail); 

하지만 메시지로 오류 메시지가 무엇입니까 실패 전송하는 단계를 포함하는 방법.

제가 잘못하고있는 일과 제대로 작동하도록하기 위해해야 ​​할 일을 알려주십시오.

미리 감사드립니다.

+0

'받는 사람'주소가 실제 유효한 주소인지 확인하십시오. –

+0

예, 내 이메일 주소입니다. – Zerotoinfinity

+0

또한 TRY-CATCH 블록에 코드를 넣고 전체 메시지를'Catch (Exception x) {Response.Write (x);}'화면에 출력하여 오류 메시지에 더 자세한 내용이 있는지 확인하십시오 당신이 그리워 할 수도 있습니다. –

답변

2

클라이언트 자격 증명을 제공해야합니까?

smp.Credentials = CredentialCache.DefaultNetworkCredentials; 

나 또한

smp.Credentials = new NetworkCredential("yourUserID", "yourPassword", "yourDomainName"); 

, 당신이 도움이 될 것입니다 점점 ​​정확한 예외입니다.

자세한 내용은 post by Scott Guthrie을 참조하십시오.

2

포트 8080이 올바른 smtp 포트인지 의심 스럽습니다. 아마도 포트 25 또는 587입니다.

+1

나는 동의한다, 그의 항구는 완전히 벗어난 것처럼 보인다. 예외가 연결되지 않으면 오류를 알 수 있습니다. 그 때까지는 모두 추측입니다. – Kelsey

+0

실제 예외를 찾는 데 도움이 될 것이라고 나는 정확한 예외를 제공 할 것입니다. – Zerotoinfinity

0

작동하는 코드가 매우 유사합니다. 차이점은 SMTP 클라이언트의 생성자에서 SMTP 서버에 IP 주소를 제공해야한다는 것입니다.

 MailMessage Email = new MailMessage("[email protected]", "[email protected]"); 
     Email.Subject = "RE: Hello World."; 
     Email.Body = "Hello World"; 
     Email.IsBodyHtml = false; 
     SmtpClient Client = new SmtpClient(SMTP_SERVER); //This will be an IP address 
     Client.Send(Email); 

희망 하시겠습니까? :)

은 (, BTW 나는 윈폼, 윈도우 서비스 및 ASP .NET이 사용했습니다. ASP .NET에서 나는 영문 페이지에 아무것도를 제공 할 필요가 없습니다.)

1

이메일 보내기 asp.net의 C#을가 복잡한 일이 아니다 통해 그냥 ... 우리는 SMTP를 사용하지 않고

  MailAddress to = new MailAddress("Email Id"); 

      MailAddress from = new MailAddress("Email Id"); 

      MailMessage mail = new MailMessage(from, to); 

      mail.Subject = ""; 
      mail.Body = ""; 


      SmtpClient smtp = new SmtpClient(); 
      smtp.Host = "smtp.gmail.com"; 
      smtp.Port = 587; 

      smtp.Credentials = new NetworkCredential(
       "Email Id", "Password"); 
      smtp.EnableSsl = true; 

      smtp.Send(mail); 
1

, Microsoft.Office.Interop.Outlook를 사용하여 추가 ... SMTP 포트 및 호스트에 대해 알고; 참조

 Application app = new Application(); 
     NameSpace ns = app.GetNamespace("mapi"); 
     ns.Logon("Email-Id", "Password", false, true); 
     MailItem message = (MailItem)app.CreateItem(OlItemType.olMailItem); 
     message.To = "To-Email_ID"; 
     message.Subject = "A simple test message"; 
     message.Body = "This is a test. It should work"; 

     message.Attachments.Add(@"File_Path", Type.Missing, Type.Missing, Type.Missing); 

     message.Send(); 
     ns.Logoff();