2017-09-09 4 views
0

파일에서 첨부 파일을 추가하는 좋은 예가 많이 있지만, 비슷한 방법으로 AlternateView.CreateAlternateViewFromString이 작동하는지 궁금합니다.MIME 문자열에서 MailMessage로 직접 첨부 추가하기

이메일 주소를 body_text 및 body_headers로 가져 와서 다른 주소 (SMTP를 통해)에서 변경 사항을 보내고 싶지만 가능하면 첨부 파일을 최대한 충실하게 추가하려고합니다. MailMessage 및 SmtpClient (System.Net & System.Net.Mail)

"Content-Type :"태그로 BODY [TEXT]에서 MIME 부분을 추출하는 코드를 작성하고 html 이 방법으로보기. MIME에 첨부 파일이 있는데 (아래 예제 참조) MIME에서 "Content-Type : application/octet-stream"을 추출 할 수있는 문자열에서 직접 첨부 파일을 쉽게 추가 할 수 있어야합니다. 현재, 나는 application/octet-stream으로 작업하는 것에 만 관심이있다. 문자열을 포함하는 것으로

나는 내 코드의 부분이 사용할 수있는 하나 예에서

Content-Type: application/octet-stream; name="test_file.abc" 
Content-Disposition: attachment; filename="test_file.abc" 
Content-Transfer-Encoding: base64 
X-Attachment-Id: f_j7datrbn0 

YWJjIGZpbGU= 

또는

Content-Disposition: attachment; filename="test_file.abc" 
Content-Transfer-Encoding: base64 
X-Attachment-Id: f_j7datrbn0 

YWJjIGZpbGU= 

:

* 53 FETCH (BODY[TEXT] {614} 
--001a1140ae52fcc4690558c101ec 
Content-Type: multipart/alternative; boundary="001a1140ae52fcc4630558c101ea" 

--001a1140ae52fcc4630558c101ea 
Content-Type: text/plain; charset="UTF-8" 

Blah blah 

--001a1140ae52fcc4630558c101ea 
Content-Type: text/html; charset="UTF-8" 

<div dir="ltr">Blah blah</div> 

--001a1140ae52fcc4630558c101ea-- 
--001a1140ae52fcc4690558c101ec 
Content-Type: application/octet-stream; name="test_file.abc" 
Content-Disposition: attachment; filename="test_file.abc" 
Content-Transfer-Encoding: base64 
X-Attachment-Id: f_j7datrbn0 

YWJjIGZpbGU= 
--001a1140ae52fcc4690558c101ec-- 
) 
$ OK Success 

의 다른 측면의 모든 내 코드 작업,하지만 내가 거기에 MIME 데이터에서 첨부 파일을 직접 추가하는 쉬운 방법입니다. MimeKit이나 표준 VS와는 다른 라이브러리를 사용하지 않습니다.

이 긴 질문을 읽어 주셔서 감사합니다.

답변

0

아니 정말 내가하고 싶었던, 그러나 나는 다음과 같이 내가 필요한 것을 얻을 무엇을 : 무슨 의미가 변환의

string name = find_item_by_key(attachment_content, "filename"); // looks for key="value" and returns value 
string attachment_base64 = attachment_content.Substring(attachment_content.LastIndexOf("\r\n\r\n")); 
attachment_base64 = attachment_base64.Trim('\r', '\n'); 
byte[] attachment_bytes = Convert.FromBase64String(attachment_base64); 
Attachment att = new Attachment(new System.IO.MemoryStream(attachment_bytes), name); 
mail.Attachments.Add(att); 

제비 데이터가 이미 Base64로하고 mail.Attachments.Add 그것을 다시 변환되지 의심 때문에, 다시.

관련 문제