2013-05-08 2 views
4

을 사용하여 이미지 포함 여기 내 상황이 있습니다.전자 메일 HTML 문서, C#

이미지가 포함 된 HTML 형식의 문자열로 이메일을 보내야합니다. 내 이미지를 base64로 변환하려고했지만 작동하지 않습니다.

이메일에는 System.Drawing.Image 유형의 이미지가 3 개 있습니다. HTML 형식의 문자열로 가져와야합니다.

+0

입니다 : 다음과 같이 수행 할 수 있습니다

? –

+0

나는'img' 태그의'src' 속성으로 base64 문자열을 사용할 수있을 것이라고 생각합니다. 너 뭐하려고했는데? –

+0

부분적으로 true : src = "data : image/png; base64, YOUR_BASE_64_ENCODED_DATA"에서 작동하지만 일반적으로 지원되지 않습니다. –

답변

2

base64로 변환하는 것이 옳았지만 포함시키기에 충분하지 않습니다 (클라이언트가 base64를 일반 텍스트로 구분할 수있는 방법이 없음). 조금 포맷해야합니다.

체크 아웃 Buhake의 대답은, 그것은 아주 잘 일반적으로 문제를 다룹니다 (당신은 거기까지 갈 수있을 것입니다) : 전자 메일에 이미지를 삽입 할 수 How to embed images in email

+0

Base64는 좋은 해결책이지만 고화질 이미지를 전송했기 때문에 내 앱에는 적합하지 않습니다. 나는 한 번 이미지를 보내면 2300 페이지의 텍스트 파일이 만들어 질 것입니다. 나는 html 전자 메일 자체에 포함시키지 않음으로써이 문제를 해결했습니다. 간단히 첨부 파일로 보내고 html로 동적으로 참조했습니다. –

38

다른 방법 System.Net.Mail가 있습니다 사용하는 경우 로컬 드라이브의 이미지를 이메일에 첨부하고 contentID을 할당 한 다음 나중에 이미지 URL에 contentID을 사용하십시오. 코드가 어디

msg.IsBodyHtml = true; 
Attachment inlineLogo = new Attachment(@"C:\Desktop\Image.jpg"); 
msg.Attachments.Add(inlineLogo); 
string contentID = "Image"; 
inlineLogo.ContentId = contentID; 

//To make the image display as inline and not as attachment 

inlineLogo.ContentDisposition.Inline = true; 
inlineLogo.ContentDisposition.DispositionType = DispositionTypeNames.Inline; 

//To embed image in email 

msg.Body = "<htm><body> <img src=\"cid:" + contentID + "\"> </body></html>"; 
+2

+1 아주 좋은 해결책입니다. 나는 지금 내 남은 하루 동안 다른 것을 할 수있다. ;) – Samuel

+1

나를 위해 일한 가장 깨끗한 해결책, 내 하루를 저장 +1 –

+0

우수. Thx 많이 :) –