2011-02-14 3 views
0

C#으로 HTML 전자 메일을 작성하는 데 어려움을 겪고있는 오픈 소스/무료 프레임 워크가 있습니까?전자 메일 메시지 서식을 지정하기위한 .NET 프레임 워크?

전자 메일을 보내는 것이 주 기능인 독립 실행 형 ASP.NET 웹 양식이 많이 유지됩니다. 좋은 HTML 프레젠테이션을하는 것은 너무 지루한 작업이기 때문에 대부분이 일반 텍스트 형식입니다.

나는 또한이 동일한 문제를 해결하기위한 다른 접근 방식에 관심이 있습니다.

EDIT : 일반 텍스트 입력 (이름, 주소, 전화 번호)을 가져 와서 HTML 전자 메일 서식 파일에 넣는 것에 관심이 있습니다. 그렇게하면 수신자는 현재 제공하고있는 원시 텍스트 출력 대신 멋지게 형식화 된 메시지를 볼 수 있습니다.

편집 2 :이 질문과 지금까지 생성 된 답변에 대해 더 자세히 생각하면서, 내가 찾고있는 것을 더 명확하게 보여주고 있습니다. 이상적으로 나는 내가 갈 수 있도록하는 새로운 클래스를 싶습니다

HtmlMessage body = new HtmlMessage(); 
    body.Header(imageLink); 
    body.Title("Some Text That Will Display as a Header"); 
    body.Rows.Add("First Name", FirstName.Text); 

HtmlMessage 클래스는, 테이블을 구축 장소에 영상을 삭제하고 내가 추가하는 각 필드에 새 행을 추가합니다. 글을 쓰는 것이 그렇게 어려울 것 같지 않으므로 거기에 아무것도 없다면 어쩌면 내가 그 길로 갈 것입니다

답변

0

나는 최근에 MarkDownSharp을 사용하여 설명하는 것을 구현했습니다. 그것은 꽤 고통 스러웠습니다.

일반 텍스트 형식의 게시물을 가져 와서 멋진 HTML처럼 보이게하는 데 사용하는 프레임 워크 (몇 개 수정하지 않음)입니다.

또 다른 옵션은 TinyMCE와 같은 것을 사용하여 사용자에게 WYWIWYG HTML 편집기를 제공하는 것입니다. 이것은 그들에게 이메일의 모양과 느낌에 대한 더 많은 힘을 줄 것이다. 그러나 그것은 단지 일들을 지나치게 복잡하게 만들 수도있다.

사용자 생성 HTML에는 몇 가지 보안 문제가 있음을 기억하십시오. 어떤 전략을 사용하든 관계없이 입력 내용에 스크립트 태그와 같은 무서운 것들을 포함 할 수 없도록 사용자의 입력을 위생해야합니다.

편집

미안 해요, 난 당신이 이메일 템플릿 솔루션을 찾고 있었다 몰랐어요. 가장 간단한 해결책은 사용자가 생성 한 전자 메일에서 텍스트 "매크로"를 사용하는 것입니다. 따라서, 예를 들어, 사용자가 입력 할 수 :

 
Dear {RecipientFirstName}, 

    Thank you for your interest in {ClientCompanyName}. The position you applied for has the following minimum requirements: 

- B.S. or greater in Computer Science or related field 
- ... 

그리고 우리는이를 무너 뜨리는 몇 가지 간단한 해석 할 거라고 ...

 
Dear {0}, 

Thank you for your interest in {1}. The position you applied for has the following minimum requirements: 

- B.S. or greater in Computer Science or related field 
- ... 

을 ... 그리고

0 = "RecipientFirstName" 
1 = "ClientCompanyName" 
... 

데이터베이스에이 두 구성 요소를 저장하고이 템플릿에서 새 인스턴스를 만들 준비가되면 주어진 속성 이름의 값을 평가하고 표준 형식 문자열 호출을 사용하여 실제 conte를 생성합니다 nt.

친애하는 존,

가 마이크로 소프트에 관심을 가져 주셔서 감사합니다 :

string.Format(s, macroCodes.Select(c => EvaluateMacroCode(c, obj)).ToArray()); 

은 그 때 나는 멋지게 형식의 HTML 전자 메일 메시지를 생성하는 일부 HTML 살균 방법과 함께, MarkdownSharp를 사용합니다. 신청하신 직위는 다음과 같은 최소 요구 사항을 충족해야합니다 :

  • B.S. 또는

... 컴퓨터 과학 또는 관련 분야

  • 더 큰 더 나은 거기에 뭔가가 있는지 알고 싶은데요,하지만 난 아직 아무것도 발견하지 않았습니다.

  • +0

    코드를 표시 할 수있는 것 같습니다. 맞습니까? 그건 내가 바라는 것이 아니다. 나는 templated 전자 메일을하고 싶습니다. –

    +0

    @JoshEarl :별로. 일반 텍스트를 HTML 형식의 텍스트로 변환합니다. 예를 보려면 http://softwaremaniacs.org/playground/showdown-highlight/를 참조하십시오. – StriplingWarrior

    1

    Andrew DaveyPostal은 ASP.NET MVC 뷰 엔진 중 하나를 사용하여 템플릿 이메일을 만들 수 있습니다. Here's a video where he talks about how to use it.

    그의 예 :

    public class HomeController : Controller { 
        public ActionResult Index() { 
         dynamic email = new Email("Example"); 
         email.To = "[email protected]"; 
         email.FunnyLink = DB.GetRandomLolcatLink(); 
         email.Send(); 
    
         return View(); 
        } 
    } 
    

    그리고 면도기를 사용하여 템플릿 : StringTemplate의 C#을 포트가 나를 위해 잘 작동

    To: @ViewBag.To From: [email protected] Subject: Important Message 
    
    Hello, You wanted important web links right? Check out this: 
    @ViewBag.FunnyLink 
    
    <3 
    
    +0

    그건 멋질거야; 불행히도 우리는 MVC가 아닌 ASP.NET 웹 폼을 사용하고 있습니다. –

    0

    . 나는 그것을 매우 추천한다. 템플릿 파일이 같은 이름 토큰의 수를 가질 수 있습니다

    ... 
        <b> 
         Your information to login is as follows:<br /> 
         Username: $username$<br /> 
         Password: $password$<br /> 
        </b> 
    ... 
    

    을 ... 그리고 당신이 템플릿을로드하고 이런 식으로 채울 수 있습니다 : 끝에

    notificationTemplate.SetAttribute("username", Username); 
        notificationTemplate.SetAttribute("password", Password); 
    

    , 당신은 ToString()를 얻을 수 템플릿의 MailMessage.Body 속성에 할당합니다.

    +0

    우리는 과거에 비슷한 것을 시도해 보았지만 템플릿 파일을 생성하는 것은 문자열 작성자로 손으로 메시지를 작성하는 것만 큼 많은 어려움을 겪습니다. 이 모든 형태는 다르기 때문에 각 템플릿마다 고유 한 템플릿을 만들어야합니다. 그래도 고마워! –

    +0

    그래, 문제 없습니다. 나는 지금 해결책에 직접 관심이있다! –

    +0

    나는 이런 식으로 일하기위한 오픈 소스 프로젝트를 만드는 것에 착수했다. 웹 양식을 사용하는 우리에게 합법적 인 필요성이있는 것처럼 보입니다. –

    관련 문제