2011-02-15 3 views
7

전자 메일 발송 프로세스에서 C# 콘솔 응용 프로그램을 작성하려고합니다.ASP.Net 응용 프로그램 외부의 MailDefinition

 MailMessage message = new MailMessage("[email protected]", "[email protected]", "Test message", "Test message content"); 
    message.IsBodyHtml = true; 
    message.Body = "<a href=\"http://www.daringfireball.net\">DaringFireball.net</a>"; 
    SmtpClient client = new SmtpClient("localhost"); // Your host here 

    try 
    { 
     client.Send(message); 
    } 
    catch (Exception e) 
    { 
     Console.WriteLine("There was an error trying to send the message: " + e.ToString()); 
    } 

나는 이러한 이메일이 더있을 수 있기 때문에 MailDefinition이 할 수있는 방법을 찾기 위해 노력했지만, 내가 조금으로 실행되었는지하는 과정에 : 나는 이메일을 간단하게 뭔가를 수행하여 외출이 문제. CreateMailMessage 메서드를 사용하려면 ASP.Net 응용 프로그램이 아니기 때문에 System.Web.UI.Control이 필요합니다.

누구에게이 문제가 발생 했습니까? 아니면 이것을하는 더 좋은 방법을 찾았습니까?

덕분에

+1

'MailDefinition'이'MailMessage'가 할 수없는 파티에 가져 오는 것은 무엇입니까? –

+1

@JimMischel -'MailDefinition'의'CreateMailMessage' 메소드는 텍스트 파일로부터 이메일 메시지를 생성하는 깔끔한 방법을 제공합니다. 'MailMessage'는 그런 것을 가지고 있지 않습니다. – Theophilus

답변

0

나는 MailDefinition 어떤 방법으로 우수한 것을 잘 알고 아니에요. MSDN에서 :.

"제어에 의해 전송되는 미리 정의 된 전자 메일을 메시지를 생성 단순화 에 MailDefinition 클래스를 사용하여 당신이 제어를 사용하지 않는 전자 메일을 보내려면 경우, System.Net.Mail 참조 수업." (source here)

을하지만 당신이 프로젝트에를 System.Web.dll의 다음 추가 MailMessage 일정한 기준에 MailDefinition을 선호하는 이유가 있다고 가정합니다. 해당 어셈블리의 클래스를 사용하기 위해 IIS에서 실행할 필요는 없습니다.

1

대상 프레임 워크로 .Net Framework 4 클라이언트가 아니라 올바른 .NET Framework 4 클라이언트를 사용했는지 확인하십시오. System.Web을 프로젝트 참조에 추가하십시오.

다음으로 Mailmessage를 만듭니다. MailMessage msgHtml = message.CreateMailMessage (받는 사람, 바꾸기, 새 System.Web.UI.Control());

+0

이 솔루션은 작동하는 것으로 보입니다. http://stackoverflow.com/questions/7185105/wcf-service-fails-to-send-mail-through-maildefinition – russau

관련 문제