나는 컨트롤러 동작을 통해 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
}
당신이 이미 그 'PdfBuilder'를 가지고 있다면, 이메일을 보낼 때 다시 부르면 어떨까요? 코드를 복제하고 싶지 않은 경우 pdf 생성 코드를 세 번째 방법으로 리팩토링하십시오. – rsenna
이메일을 보낼 때 무엇을 사용하고 첨부 파일이 필요한지 실제 파일이나 파일 스트림이 필요합니까? –
그냥 SmptClient, 전형적인 .Net 이메일 메커니즘을 보내십시오. – VajNyiaj