2009-08-24 3 views
0

내보내기에서 가져온 HTML이로드 된 스트림이 있습니다. 스트림에서이 html을 가져올 수 있습니다. (다른 방법이 있습니까?)이 바이트 []를 html 메일 본문에 쓰고 싶습니다.스트림을 사용하여 메일에 html 콘텐츠 작성

이렇게하는 이유는 보고서를 html로 내보내고이 데이터를 pdf로 내보내고 첨부 파일로 보내지 않고 메일 본문에 사용하기 위해서입니다.

희망 사항은 분명합니다. 뭔가 추가해야하는지 알려주세요.

감사합니다.

+0

확인, 당신의 질문은 무엇입니까? – Cleiton

답변

0

찾았습니다. 그것은 내가 원하는 결과를 찾지 못했지만 메일에 직접 형식화 된 출력을 가지기는하지만 매우 간단합니다. 문제는 html을 출력하기 위해 스트림에 저장된 바이트를 사용하는 방법에 관한 것입니다.

내가 스트림을 가지고 가고에서는 StreamReader 만들 :

mail.Body = reader.ReadToEnd(); 

전부 : 메일 개체의 몸에, 그리고

  stream.Position = 0; 
      StreamReader reader = new StreamReader(stream); 

을, 나는에서는 StreamReader를 사용하여 스트림의 내용을 읽어 . 어떻게 생각해?

0

Multipart Mime 메시지를 사용하여 스트림을 AlternateView 생성자에 전달할 수도 있습니다. 스트림을 닫지 않거나 메시지를 보낸 후에 메시지를 처리 ​​할 때까지 정리합니다 (MailMessage.Dispose()를 호출하여 처리해야 함). 당신이 원한다면 당신을위한 정리). 솔루션을 사용하는 경우 mail.IsBodyHtml을 true로 설정하여 컨텐츠 유형을 올바르게 설정하십시오. 그렇지 않으면 수신 메일 클라이언트가 일반 텍스트로 생각하기 때문에 HTML을 HTML로 표시하지 못할 수 있습니다. 메일 출력이 메일 클라이언트에서 우스운 것처럼 보인다면 아마도 그 이유 일 것입니다.

(단지 관련 부분에 잘립니다) 같은 것을 보일 것이다 코드 :

MailMessage message = new MailMessage(); 
message.AlternateViews.Add(new AlternateView(stream, new ContentType("text/HTML")); 
// do NOT set Body, IsBodyHtml, or ContentType on MailMessage or 
// you'll mess up the mime types 

smtpClient.Send(message); 
관련 문제