2010-07-12 6 views
5

ASP.NET MVC 응용 프로그램에서 전자 메일을 어떻게 처리해야합니까? 나는 이것에 대해 생각 해왔다. MVC 지향적 인 방식으로 처리하는 아이디어를 정말 좋아한다. (결국 MVC 애플리케이션이다.)ASP.NET MVC - 전자 메일을 어떻게 처리해야합니까?

내가 말한 것은 사용자는 실제로 모델을 전달해야하는보기입니다. 이는 몇 가지 질문을 제기합니다. 즉, 작업이 실행될 때 요청 브라우저와 SMTP 서버에 동시에보기를 제공해야합니까? 프레임 워크는 이것을 지원할 수있는 어떤 설비가 있습니까? 그렇지 않은 경우, 이런 종류의 기능을위한 제 3 자 릴리스/지침이 있습니까? MVC 방식으로 보내는 이메일을 치료에

대안은 다음과 같습니다

  • 이메일 전송 코드는 컨트롤러의 동작 방법에 보여줍니다.
  • 전자 메일 보내기는 Model 개체의 동작입니다.

ASP.NET MVC 응용 프로그램에서 전자 메일을 어떻게 처리합니까? MVC 지향 접근 방식에 대해 어떻게 생각합니까?

답변

6

일반적으로 새로운 결과 유형이 필요하면 ActionResult에서 상속받을 새 MyResult 개체를 프로그래밍해야합니다. 이렇게하면 작업 메서드가 표시된 결과 유형을 자유롭게 선택할 수 있으며 뷰 엔진은 데이터를 렌더링하는 방법에 대한 논리를 보유 할 새 결과 유형에 ExecuteResult() 메서드를 호출하기 만하면됩니다.

그러나보기에서 HTML을 가져와 전자 메일로 보내려는 것 (웹 브라우저와 동일한 결과 유형) 인 것처럼 들리므로 the answers to this question에 자세히 설명해야합니다. MVC 2.0의 코드에 대한 해답은 인기있는 요구로 인해 두 번째 릴리스에 "문자열에 대한 뷰 렌더링"기능을 추가 했으므로 가장 좋은 방법입니다.

귀하의 프로그램에서 출력물에 대해 MVC 방식을 사용하는 것이 좋습니다. 귀하의 질문은 좋은 답변입니다. 이메일로보기를 보내는 것은 다른 출력 유형 (PDF, 모바일 브라우저, SMS)으로보기를 전송하는 것과 개념적으로 다를뿐 아니라 플러그 가능한보기 출력을 작성하여 앱 사용을 쉽게 확장 할 수 있습니다.

0

흥미로운 질문입니다. 사용자 지정 ActionFilterAttribute를 만들고 OnResultExecuted 메서드를 구현할 수 있습니다. 거기에서 당신은 출력 HTML을 잡고 그것을 이메일로 보낼 수 있어야합니다.

당신이해야 할 일은 커스텀 애트리뷰트로 액션 메소드를 꾸미고 뷰를 호출하면 출력을 브라우저로 보내고 이메일로 보내는 것뿐입니다.

+0

나는 브라우저에 전송되는 것과 똑같은 것을 이메일로 보내고 싶지는 않을 것이라고 생각한다. –

관련 문제