2010-12-30 3 views
1

그것은 일반적입니다 : 과거 등방법이

계정 활성화, 암호 재설정을, 나는 시스템을 구축 XmlDocument에서 xml 마크 업을 생성 한 다음 XslCompliedTransform을 사용하여 xml을 html 전자 메일로 변환합니다. 단점은 XSLT가 재미 있고 쉽게 변경할 수 없다는 것입니다 (적어도 나를 위해).

최근에는 SSRS에서 데이터 기반 구독을 사용하는 동료와 아이디어를 빌려 데이터베이스 테이블을 메시지 큐로 사용했습니다. 데이터 드라이브 구독은 10 분마다 실행되고 큐에있는 모든 전자 메일을 보냅니다.이 전자 메일은 전자 메일 메시지로 렌더링되고 첨부 파일로 보내지지 않도록 WebArchive로 보낸 보고서입니다. 이것은 훌륭하지만 과장된 느낌입니다. 내가 보는 이점은 누군가가 BIDS에서 보고서를 열고 프로그래밍 경험이 너무 많지 않아도 레이아웃을 변경할 수 있다는 것입니다.

여러분이 응용 프로그램에서 html 형식의 전자 메일을 사용자에게 보낸 몇 가지 방법은 무엇입니까?

+0

. 나는 이메일 템플릿 (XSLT보다 쓰기가 쉽다)에 Razor와 같은 것을 사용하려고 생각하고 있었다. 누군가가 해냈는지 확실하지 않습니다. – turtlepick

답변

1

당신도이 클래스를 사용하여 조사 할 수 있습니다 :

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.maildefinition.aspx

당신은/키 값으로 사전을 전달할 수 있습니다.

그것은 여기에 몇 가지 코드 예제가

(ForgotPassword 같은) .NET 로그인 컨트롤에서 사용하는 동일합니다 : 제가 질문을거야

http://www.go4answers.com/Example/systemnetmail-html-template-problem-88358.aspx

+0

매우 근사합니다. 완벽하게 받아 들일 수 있지만 MVC의 webforms 컨트롤을 사용하면 더러워집니다. 그러나 조사할만한 가치가 있습니다. – Josh

+0

알아! 이 클래스가 UI 아래에있는 이유를 모르겠습니다.WebControls 웹 양식에 마크 업을 생성하지 않기 때문에 System.Net.Mail 네임 스페이스의 어딘가에 있어야합니다. – turtlepick

2

이것은 당신이하고있는 일에 과잉 일지 모르지만 일반적으로이 문제를 해결하는 방법은 데이터베이스에서 보내려는 각 이메일에 대해 html 및 텍스트 템플릿을 저장하는 것입니다. 템플릿에는 동적 데이터의 대체 코드가 있습니다. 예 :

< --Replacement.FirstName -> 다음

내가 템플릿을 얻을 내가 필요로하는 대기 이메일에 대한 값을 얻을 내 이메일을 전송을 담당하는 .NET 서비스에 나가서 필요한 대체품을 만드십시오. 마지막에 RegEx.replace를 사용하여 남아있는 대체 코드 (있는 경우)를 제거합니다.

전자 메일을 실제로 보내려면 System.Net.Mail 네임 스페이스를 사용하십시오. 다중 사용자 메시지를 보낼 수 있으므로 일반 사용자의 클라이언트 만 일반 텍스트 만 지원하므로 내 HTML 태그가 모두 표시되지 않습니다. 이메일의 텍스트 및 HTML 버전을 발송합니다.

이메일 디자이너가 데이터베이스를 관리 할 수 ​​있도록 일반적으로 데이터베이스의 html/텍스트 템플릿을 관리하기에 좋은 프런트 엔드를 만들기 때문에 가장 좋은 해결책은 아닙니다. 또한 대체로 대체 코드를 나열하여 버튼을 클릭하여 관련 대체 코드를 템플릿에 추가 할 수 있습니다.

+0

그건 실제로 정말 좋은 해결책입니다. 감사. – Josh

+0

기꺼이 도와 드리겠습니다. – Adrian