문제

수출에서 얻은 HTML로로드 된 스트림이 있습니다. 바이트 [] (다른 방법이 있습니까?)에서 스트림 에서이 HTML을 가져갈 수 있으며이 바이트 []를 HTML 메일 본문에 쓰고 싶습니다.

이를 수행 해야하는 이유는 HTML로 보고서를 내보내고 PDF로 내보내는 대신 메일 본문 에이 데이터를 사용하고 첨부 파일로 보내기 때문입니다.

충분히 분명하기를 바랍니다. 무언가를 추가 해야하는지 알려주세요.

감사

도움이 되었습니까?

해결책

찾았어요. 매우 간단합니다. 비록 내가 원하는 결과를 찾지 못했지만 메일에 직접 포맷 된 출력을 갖는 것은 HTML을 출력하기 위해 스트림에 저장된 바이트를 사용하는 방법에 관한 것이 었습니다.

스트림을 가져 와서 스트림 리더를 만듭니다.

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

그런 다음 Mail Object의 본문에서 StreamReader를 사용하여 스트림의 내용을 읽습니다.

mail.Body = reader.ReadToEnd();

그게 다야. 어떻게 생각해?

다른 팁

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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top