2011-02-07 5 views
1

나는 컨트롤러 동작을 통해 PDF를 생성하고 클라이언트로 스트리밍하지만 해당 PDF 다운로드 작업의 출력을 첨부 파일로 전자 메일로 보내기위한 컨트롤러 동작을 원합니다. 전자 메일을 보내는 방법을 알고 있습니다. 문제는 내 전자 메일 첨부 파일에 대한 MVC 다운로드 작업을 어떻게 사용하고 캡처 할 수 있습니까?ASP.NET MVC는 전자 메일 첨부 파일을 보내십시오.

의사 코드 : 당신은 대신 이메일() 메소드에서 다운로드를()를 호출의 PdfResult를 반환하는 도우미 클래스를 추가 할 수

public PdfResult Download(int? someId) 
{ 
    var pdfBuilder = new pdfBuilder(); 
    var pdfStream = pdfBuilder.StreamPdf(someId); 
    return new PdfResult("someId.pdf", "application/pdf", pdfStream); 
} 

public ActionResult Email(int? someId) 
{ 
    var pdfStream = View("Download", someId); 
    var attachment = new Attachment(pdfStream, "someId.pdf"); 

    //...send email code 
} 
+1

당신이 이미 그 'PdfBuilder'를 가지고 있다면, 이메일을 보낼 때 다시 부르면 어떨까요? 코드를 복제하고 싶지 않은 경우 pdf 생성 코드를 세 번째 방법으로 리팩토링하십시오. – rsenna

+0

이메일을 보낼 때 무엇을 사용하고 첨부 파일이 필요한지 실제 파일이나 파일 스트림이 필요합니까? –

+0

그냥 SmptClient, 전형적인 .Net 이메일 메커니즘을 보내십시오. – VajNyiaj

답변

1

.

+0

저는 이미 바이너리이기 때문에 다운로드 액션의 동일한 출력을 사용할 수 있기를 바랍니다. – VajNyiaj

+0

두 방법 모두에서 도우미를 호출 할 수 있습니다. MVC 패턴을 더 잘 준수 할 것입니다. 두 호출 모두 동일한 출력을 받게됩니다. –

관련 문제