Re: Attachment Using CDO.MESSAGE

Re: Attachment Using CDO.MESSAGE

am 23.12.2007 22:22:04 von rn5a

On Dec 23, 8:10=A0pm, "Bob Lehmann" wrote:
> >> Why does that surprise you, Anthony?
>
> Because Word documents are a proprietary, binary format, as opposed to pla=
in
> text.
>
> Create a file in Notepad as something.doc. Now open it, and try to save it=

> in Word, to see what I mean.
>
> Bob Lehmannn
>
> "RN1" wrote in message
>
> news:a21927f8-e090-4dde-b666-a8bfb39ec6af@e23g2000prf.google groups.com...
> On Dec 23, 6:12 pm, "Anthony Jones" wrote:
>
>
>
>
>
> > "RN1" wrote in message
>
> >news:2164bba1-97c6-408b-a59e-c31132e18e7f@i29g2000prf.googl egroups.com...=

> > On Dec 22, 6:08 pm, "Anthony Jones" wrote:
>
> > > "RN1" wrote in message
>
> > >news:22c8c699-74bf-4525-8332-a7851d885a8f@d27g2000prf.googl egroups.com.=
...
>
> > > > On Dec 15, 5:34 pm, "Anthony Jones" wrote:
> > > > > "RN1" wrote in message
>
> > >news:53695732-6bf3-48ad-9045-79d4a0c0b38b@t1g2000pra.google groups.com..=
..
>
> > > > > > An ASP page first creates a MS-Word (doc) document using the
> values
> > > > > > received from a HTML Form & then mails this doc file as an
> > attachment
> > > > > > for which I am using CDO.MESSAGE but the line
>
> > > > > > cdoMessage.AddAttachment Server.MapPath(strFile)
>
> > > > > > generates the following error:
>
> > > > > > The process cannot access the file because it is being used by
> > another
> > > > > > process.
>
> > > > > > which points to the AddAttachment line (shown above).
>
> > > > > > How do I overcome this error?
>
> > > > > You'll have a Word application object still holding the file open.=

> As
> > > the
> > > > > link that Bob has posted in a later thread indicates, this not a
> good
> > > idea.
>
> > > > > --
> > > > > Anthony Jones - MVP ASP/ASP.NET
>
> > > > Anthony, if I am not mistaken, what Bob has suggested is very much
> > > > different to what I want to do here. What Bob has suggested that is
> > > > for opening a Word file using ASP but here I want to first create th=
e
> > > > Word document (which I have taken care of) & then mail it as an
> > > > attachment. At no point do I want to open that Word document that AS=
P
> > > > creates.
>
> > > Please post the code that creates the Word document.
>
> > > > Anyway, how do I ensure that the Word object is not holding the file=

> > > > open?
>
> > > My advice is don't use Office objects in ASP.
>
> > > --
> > > Anthony Jones - MVP ASP/ASP.NET- Hide quoted text -
>
> > > - Show quoted text -
> > >Here is the code that creates the Word document Anthony:
>
> > <%
> > Dim strParty,strNewFile,strFolderPath
>
> > strParty=3DRequest.Form(strParty)
> > strNewFile=3D"LETTERS\Letter" & Replace(strParty," ","") & ".doc"
> > strFolderPath=3D"LETTERS"
>
> > Dim objFSO,objFolder,objFile
> > Set objFSO=3DServer.CreateObject("SCRIPTING.FILESYSTEMOBJECT")
> > Set objFolder=3DobjFSO.GetFolder(Server.MapPath(strFolderPath))
>
> > Const ForAppending=3D8
> > Const ForWriting=3D2
>
> > If Not(objFSO.FileExists(Server.MapPath(strNewFile))) Then
> > Set objFile=3DobjFSO.CreateTextFile(Server.MapPath(strNewFile))
> > Else
> > Set
> > objFile=3DobjFSO.OpenTextFile(Server.MapPath(strNewFile),For Writing)
> > End If
>
> > <<<<<<<<
>
> > The above can be reduced to:-
>
> > Set objFile=3DobjFSO.OpenTextFile(Server.MapPath(strNewFile),For Writing,=

> True)
>
> > There is no need to test for FileExist.
>
> > objFile.WriteLine("............")
> > objFile.WriteLine("............")
> > objFile.WriteLine("............")
>
> > <<<<<<<<
>
> > Where is objFile.Close ?
>
> > I'm no expert in office file formats but it surprises me that you can
> write
> > a word document using a text stream object.
>
> > 'e-mail code using CDO.MESSAGE to send
> > 'the DOC file as an attachment comes here
>
> > 'deleting the DOC document after 5 hours
> > For Each objFile In objFolder.Files
> > If(InStr(objFile.Name,".doc")>0) Then
> > If(DateDiff("n",objFile.DateLastModified,Now())>300) Then
> > objFile.Delete
> > End If
> > End If
> > Next
>
> > Set objFile=3DNothing
> > Set objFSO=3DNothing
> > <<<<<<<<
>
> > >> My advice is don't use Office objects in ASP
> > >Then how does one send Office documents as attachments in ASP?
>
> > You're not using office objects so don't worry about it.
>
> > --
> > Anthony Jones - MVP ASP/ASP.NET- Hide quoted text -
>
> > - Show quoted text -
> >> =A0 =A0 'e-mail code using CDO.MESSAGE to send
> >> =A0 =A0 'the DOC file as an attachment comes here
>
> You have hit the nail on the head, Anthony. objFile.Close was what was
> missing which caused that error. Thanks a lot of your help.
>
> >> I'm no expert in office file formats but it surprises me that >> you ca=
n
>
> write a word document using a text stream object.
>
> Why does that surprise you, Anthony?
>
> Thanks once again,
>
> Regards,
>
> Ron- Hide quoted text -
>
> - Show quoted text -

>> Because Word documents are a proprietary, binary format,
>> as opposed to plain text.

>> Create a file in Notepad as something.doc. Now open it,
>> and try to save it in Word, to see what I mean

OK....now I understand why Anthony found that surprising but Bob when
I created a "doc" document in the way you have suggested (i.e. first
creating a "doc" file in NotePad & then saving it in Word) & then
opened it in Word, Word generated the following message:

==================== =====3D=
===================3D
Microsoft Word needs a converter to display the file correctly.
==================== =====3D=
===================3D

Word also generated another message when I tried to save it but when I
opened & saved the doc file which I created using the text stream
object, Word didn't generate any message. So does that mean that the
doc file created with the text stream object was created in the
correct binary format?

Thanks,

Ron