Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP General > ASP CDOSYS SMTP Email attachments are being corrupted

Reply
Thread Tools

ASP CDOSYS SMTP Email attachments are being corrupted

 
 
rschaeferhig
Guest
Posts: n/a
 
      03-27-2006
I have an ASP page that uses CDOSYS to send a simple HTML format email with a
PDF attachment. When I open the PDF attached to the email it shows up as a
blank page. I log into the web server console and open the same PDF in the
source directory and it opens fine. I run a binary comparison of the source
and attached files and there's a difference: one byte, x'2E' is missing at
offset x'0231'. If I save the attached file and use a hex editor to insert
the x'2E' the file opens just like the original.

Any ideas? I'm baffled...
 
Reply With Quote
 
 
 
 
Anthony Jones
Guest
Posts: n/a
 
      03-27-2006

"rschaeferhig" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> I have an ASP page that uses CDOSYS to send a simple HTML format email

with a
> PDF attachment. When I open the PDF attached to the email it shows up as a
> blank page. I log into the web server console and open the same PDF in the
> source directory and it opens fine. I run a binary comparison of the

source
> and attached files and there's a difference: one byte, x'2E' is missing at
> offset x'0231'. If I save the attached file and use a hex editor to insert
> the x'2E' the file opens just like the original.
>
> Any ideas? I'm baffled...


Windows 2003 server right?

I've come across this at a few of my client's sites but I haven't found out
why it happens. I seems that CDOSYS ends up using binary encoding rather
than Base64 encoding when creating the attachment body part. It doesn't
happen all system though.

In the end I just used the following code to create the attachment myself:-


Function AddAttachment(Message, Source, FileName, MimeType)

Dim oPart ' As IBodyPart
Dim oStreamIn ' As ADODB.Stream
Dim oStreamOut ' As ADODB.Stream

Set oPart = Message.Attachments.Add

oPart.ContentMediaType = MimeType & "; Name = """ & FileName & """"
oPart.ContentTransferEncoding = "base64"
oPart.Fields("urn:schemas:mailheader:content-disposition").Value =
"attachment; FileName = """ & FileName & """"
oPart.Fields.Update

Set oStreamIn = Server.CreateObject("ADODB.Stream")

oStreamIn.Open
oStreamIn.Type = adTypeBinary
oStreamIn.LoadFromFile Source

Set oStreamOut = oPart.GetDecodedContentStream

oStreamIn.CopyTo oStreamOut

oStreamOut.Flush

oStreamIn.Close

Set AddAttachment = oPart

End Function


Given a MyStuff.PDF in the folder C:\temp this function is called as:-



Dim oMsg

Set oMsg = Server.CreateObject("CDO.Message")

'Set From, To, etc.
oMsg.TextBody = "Blah Blah"

AddAttachment oMsg, "c:\temp\MyStuff.pdf", "MyStuff.pdf", "application/pdf"

oMsg.Send



HTH

Anthony.


 
Reply With Quote
 
 
 
 
rschaeferhig
Guest
Posts: n/a
 
      03-27-2006


"Anthony Jones" wrote:

>
> "rschaeferhig" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > I have an ASP page that uses CDOSYS to send a simple HTML format email

> with a
> > PDF attachment. When I open the PDF attached to the email it shows up as a
> > blank page. I log into the web server console and open the same PDF in the
> > source directory and it opens fine. I run a binary comparison of the

> source
> > and attached files and there's a difference: one byte, x'2E' is missing at
> > offset x'0231'. If I save the attached file and use a hex editor to insert
> > the x'2E' the file opens just like the original.
> >
> > Any ideas? I'm baffled...

>
> Windows 2003 server right?
>
> I've come across this at a few of my client's sites but I haven't found out
> why it happens. I seems that CDOSYS ends up using binary encoding rather
> than Base64 encoding when creating the attachment body part. It doesn't
> happen all system though.
>
> In the end I just used the following code to create the attachment myself:-
>
>
> Function AddAttachment(Message, Source, FileName, MimeType)
>
> Dim oPart ' As IBodyPart
> Dim oStreamIn ' As ADODB.Stream
> Dim oStreamOut ' As ADODB.Stream
>
> Set oPart = Message.Attachments.Add
>
> oPart.ContentMediaType = MimeType & "; Name = """ & FileName & """"
> oPart.ContentTransferEncoding = "base64"
> oPart.Fields("urn:schemas:mailheader:content-disposition").Value =
> "attachment; FileName = """ & FileName & """"
> oPart.Fields.Update
>
> Set oStreamIn = Server.CreateObject("ADODB.Stream")
>
> oStreamIn.Open
> oStreamIn.Type = adTypeBinary
> oStreamIn.LoadFromFile Source
>
> Set oStreamOut = oPart.GetDecodedContentStream
>
> oStreamIn.CopyTo oStreamOut
>
> oStreamOut.Flush
>
> oStreamIn.Close
>
> Set AddAttachment = oPart
>
> End Function
>
>
> Given a MyStuff.PDF in the folder C:\temp this function is called as:-
>
>
>
> Dim oMsg
>
> Set oMsg = Server.CreateObject("CDO.Message")
>
> 'Set From, To, etc.
> oMsg.TextBody = "Blah Blah"
>
> AddAttachment oMsg, "c:\temp\MyStuff.pdf", "MyStuff.pdf", "application/pdf"
>
> oMsg.Send
>
>
>
> HTH
>
> Anthony.
>
>
>

 
Reply With Quote
 
rschaeferhig
Guest
Posts: n/a
 
      03-27-2006
Oops.

Windows 2000 Server AND Windows 2003 Server, but I'll give it a shot. I
suspected an encoding problem, I've just never had any experience doing my
own encoding so I had no idea where to start.

thanks.

"Anthony Jones" wrote:

>
> "rschaeferhig" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > I have an ASP page that uses CDOSYS to send a simple HTML format email

> with a
> > PDF attachment. When I open the PDF attached to the email it shows up as a
> > blank page. I log into the web server console and open the same PDF in the
> > source directory and it opens fine. I run a binary comparison of the

> source
> > and attached files and there's a difference: one byte, x'2E' is missing at
> > offset x'0231'. If I save the attached file and use a hex editor to insert
> > the x'2E' the file opens just like the original.
> >
> > Any ideas? I'm baffled...

>
> Windows 2003 server right?
>
> I've come across this at a few of my client's sites but I haven't found out
> why it happens. I seems that CDOSYS ends up using binary encoding rather
> than Base64 encoding when creating the attachment body part. It doesn't
> happen all system though.
>
> In the end I just used the following code to create the attachment myself:-
>
>
> Function AddAttachment(Message, Source, FileName, MimeType)
>
> Dim oPart ' As IBodyPart
> Dim oStreamIn ' As ADODB.Stream
> Dim oStreamOut ' As ADODB.Stream
>
> Set oPart = Message.Attachments.Add
>
> oPart.ContentMediaType = MimeType & "; Name = """ & FileName & """"
> oPart.ContentTransferEncoding = "base64"
> oPart.Fields("urn:schemas:mailheader:content-disposition").Value =
> "attachment; FileName = """ & FileName & """"
> oPart.Fields.Update
>
> Set oStreamIn = Server.CreateObject("ADODB.Stream")
>
> oStreamIn.Open
> oStreamIn.Type = adTypeBinary
> oStreamIn.LoadFromFile Source
>
> Set oStreamOut = oPart.GetDecodedContentStream
>
> oStreamIn.CopyTo oStreamOut
>
> oStreamOut.Flush
>
> oStreamIn.Close
>
> Set AddAttachment = oPart
>
> End Function
>
>
> Given a MyStuff.PDF in the folder C:\temp this function is called as:-
>
>
>
> Dim oMsg
>
> Set oMsg = Server.CreateObject("CDO.Message")
>
> 'Set From, To, etc.
> oMsg.TextBody = "Blah Blah"
>
> AddAttachment oMsg, "c:\temp\MyStuff.pdf", "MyStuff.pdf", "application/pdf"
>
> oMsg.Send
>
>
>
> HTH
>
> Anthony.
>
>
>

 
Reply With Quote
 
sanj
Guest
Posts: n/a
 
      03-29-2006
I had the same problem, have you tried sending via CDNOTS?

Sanj

"rschaeferhig" wrote:

> Oops.
>
> Windows 2000 Server AND Windows 2003 Server, but I'll give it a shot. I
> suspected an encoding problem, I've just never had any experience doing my
> own encoding so I had no idea where to start.
>
> thanks.
>
> "Anthony Jones" wrote:
>
> >
> > "rschaeferhig" <(E-Mail Removed)> wrote in message
> > news:(E-Mail Removed)...
> > > I have an ASP page that uses CDOSYS to send a simple HTML format email

> > with a
> > > PDF attachment. When I open the PDF attached to the email it shows up as a
> > > blank page. I log into the web server console and open the same PDF in the
> > > source directory and it opens fine. I run a binary comparison of the

> > source
> > > and attached files and there's a difference: one byte, x'2E' is missing at
> > > offset x'0231'. If I save the attached file and use a hex editor to insert
> > > the x'2E' the file opens just like the original.
> > >
> > > Any ideas? I'm baffled...

> >
> > Windows 2003 server right?
> >
> > I've come across this at a few of my client's sites but I haven't found out
> > why it happens. I seems that CDOSYS ends up using binary encoding rather
> > than Base64 encoding when creating the attachment body part. It doesn't
> > happen all system though.
> >
> > In the end I just used the following code to create the attachment myself:-
> >
> >
> > Function AddAttachment(Message, Source, FileName, MimeType)
> >
> > Dim oPart ' As IBodyPart
> > Dim oStreamIn ' As ADODB.Stream
> > Dim oStreamOut ' As ADODB.Stream
> >
> > Set oPart = Message.Attachments.Add
> >
> > oPart.ContentMediaType = MimeType & "; Name = """ & FileName & """"
> > oPart.ContentTransferEncoding = "base64"
> > oPart.Fields("urn:schemas:mailheader:content-disposition").Value =
> > "attachment; FileName = """ & FileName & """"
> > oPart.Fields.Update
> >
> > Set oStreamIn = Server.CreateObject("ADODB.Stream")
> >
> > oStreamIn.Open
> > oStreamIn.Type = adTypeBinary
> > oStreamIn.LoadFromFile Source
> >
> > Set oStreamOut = oPart.GetDecodedContentStream
> >
> > oStreamIn.CopyTo oStreamOut
> >
> > oStreamOut.Flush
> >
> > oStreamIn.Close
> >
> > Set AddAttachment = oPart
> >
> > End Function
> >
> >
> > Given a MyStuff.PDF in the folder C:\temp this function is called as:-
> >
> >
> >
> > Dim oMsg
> >
> > Set oMsg = Server.CreateObject("CDO.Message")
> >
> > 'Set From, To, etc.
> > oMsg.TextBody = "Blah Blah"
> >
> > AddAttachment oMsg, "c:\temp\MyStuff.pdf", "MyStuff.pdf", "application/pdf"
> >
> > oMsg.Send
> >
> >
> >
> > HTH
> >
> > Anthony.
> >
> >
> >

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
CDOSYS SMTP MM User ASP General 1 08-03-2008 09:42 PM
Having problem with CDOSYS. Body getting corrupted. Rohith KS ASP General 1 05-11-2008 03:20 AM
SMTP Emailing with CDOSYS =?Utf-8?B?Um9i?= ASP .Net 2 07-11-2007 07:24 PM
corrupted email attachments Alejandro Penate-Diaz ASP .Net 0 03-24-2005 08:58 PM
attachments unable to read attachments from email bub.mk Computer Support 1 09-29-2004 02:29 AM



Advertisments