Click to See Complete Forum and Search --> : [RESOLVED] .eml attachments


Trice
January 6th, 2009, 03:42 AM
Greetings to all.

I'm writing a program that is supposed to create a .eml file containing either an xml or a pdf file or both as attachments.

Prior to writing this program, I had never seen what a .eml file looks like, let alone an .eml file with attachments(I never used any of the outlooks), so I got someone to send me an email containing both these attachments and save the .eml file, so I could use this as a template in my own program. So far so good.

However, I noticed that the pdf file, after having been attached, is a huge string of letters(see below). Probably some sort of encoding. My problem is, my program is going to be creating several different pdf files and adding them as attachments to .eml files. How do I encode the different pdf files into a similar huge string of text as the one below? Or am I going about this the wrong way? What would be an alternative way to do this? Because having to encode that long string of text seems like it would be a very daunting task.

Long story short: How do I programatically create an .eml file that contains a .pdf as attachment?

Any help whatsoever would be very appreciated. Thanks.

Trice
January 6th, 2009, 03:46 AM
Below is a truncated(since the entire block of text is too long to post) version of what the section containing the pdf attachment looks like in the .eml file when opened by a text editor:

--00B0FEF5_message_boundary--
--00B0FEF4_message_boundary
Content-type: application/pdf; charset=iso-8859-1; name="my.pdf"
Content-Transfer-Encoding: Base64
Content-Location: attachment
Content-Description: my.pdf

JVBERi0xLjQKJeLjz9MKJVBERi0xLjQKJeLjz9MKMSAwIG9iaiA8PC9XaWR0aCA2MjAvQml0
c1BlckNvbXBvbmVudCA4L1N1YnR5cGUvSW1hZ2UvSGVpZ2h0IDg3Ni9GaWx0ZXIvRENURGVj
b2RlL0xlbmd0aCA1NTc3Mi9Db2xvclNwYWNlL0RldmljZVJHQi9UeXBlL1hPYmplY3Q+PnN0
cmVhbQr/2P/gABBKRklGAAEBAQBLAEsAAP/bAEMAEAsMDgwKEA4NDhIREBMYKRsYFhYYMiQm
Hik7ND49OjQ5OEFJXlBBRVlGODlSb1NZYWRpamk/T3N7cmZ6XmdpZf/bAEMBERISGBUYMBsb
MGVDOUNlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
Zf/AABEIA2wCbAMBIgACEQEDEQH/xAAbAAADAQEBAQEAAAAAAAAAAAAAAQQDAgUGB//EAFYQ
AAEDAgMCBBAJCQgBBQEAAwEAAgMEERIhMQVBExRRYRUiMjQ1VXF0gZGSlLGys9IjM1JUYnOh
0dMGJEJTcoKTwfAlQ0RFY4PC4aIWZGWEo/EmNuL/xAAYAQEBAQEBAAAAAAAAAAAAAAAAAQID
BP/EACcRAQEBAAIDAAECBgMAAAAAAAABESFBAhIxUQMiEzJhgZGxcaHR/9oADAMBAAIRAxEA
PwD7gSvub21tojhX83iXIFr90+lFluSDrhX83iRwz+bxLgpgK5A+GfzeJHDP+j4lyUWTIOuG
fzeJPhn83iXFkwmQdcK/kHiRwr+bxLkpXyTIOuGf9HxI4Z/N4lwn6UyDvhn83iS4Z/N4lyg6
pkHXDP5vEnwz+bxLkdxIDNMg74Z/N4kuGfzeJc2TsmQdcK/6PiRwr/o+Jc2QQmQPhn/R8SOG
k+j4lzZBCZEdcM/6PiRwz/o+Jc2SsmRXfDyfR8SOGk+j4lyQkU9YO+Gf9HxIEz/o+JcIBT1g
74Z/0fEjh3/R8S43p2yT1gOMSfR8SfDycjfEuCN6AnrEd8PJyN8SOHk+j4lxZMBPWK64eT6P
iRw8n0fEuQiyesHfDSfR8SOGk+j4lyEWTIOuGk+j4kcNJ9HxLmyCP6unrB1wz+bxI4Z/N4ly
OVFkyDrhn/R8SOGf9HxJWui2aZB1wz/o+JHCu5vEuQE7WTIHwr+bxI4Z/N4krXRbP0pkD4Z/
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
.
.
.
RU9GCg==
--00B0FEF4_message_boundary--

Trice
January 6th, 2009, 08:26 AM
Hi all,

incase anybody out there is interested in this, I've been able to find a method in .net which, I think, should suffice for my program.

Base64 is what's used to code the pdf(and lots of other files attachments in general) into ASCII format for mail transfer and I found there is a method in .net called Convert.ToBase64String() that takes a string and converts it to base64. So I read the pdf to be used as an attachment into an array of bytes and passed this array of bytes as the argument of the Convert.ToBase64String() method. The method returns a string which I subsequently inserted at the appropriate position into my .eml template.

Hope this information helps anybody interested.