CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 3 of 3
  1. #1
    Join Date
    Dec 2008
    Posts
    19

    [RESOLVED] .eml attachments

    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.

  2. #2
    Join Date
    Dec 2008
    Posts
    19

    Re: .eml attachments

    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
    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
    .
    .
    .
    RU9GCg==
    --00B0FEF4_message_boundary--

  3. #3
    Join Date
    Dec 2008
    Posts
    19

    Re: .eml attachments

    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured