[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 565
  • Last Modified:

attachments with CDO

I seem to be getting an unspecified error when trying to add an attachment to emails.  It works well however when I comment out the attachfile.

Is it something to do with physical paths? How can I work round this?
 <%
strCV = Request.Form("cv")  
Set sCDO = Server.CreateObject("CDONTS.NewMail")
   
               strSubject = "Subject"
            
               sCDO.To = "company name<name@domain.co.uk>"
               sCDO.From = strEmail
               sCDO.Subject = strSubject
               
               strBody = "The following visitor has submitted the following details :" & Chr(13) & Chr(10) & Chr(13) & Chr(10)
           strBody = strBody & "Name : " & strFirstName & " " &  strSurname & Chr(13) & Chr(10)
              strBody = strBody & ""
               
               sCDO.MailFormat = 0
               sCDO.Importance = 1
               
               sCDO.Body = strBody
               
               'sCDO.AttachFile = strCV

               sCDO.Send
               Set sCDO = Nothing %>

<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
//
function whatFile() {
window.location= 'file:///' + document.theform.cv.value;
}
//  End -->
</script>


<input name="cv" type=file class="form2" size="30">
0
aspguru28
Asked:
aspguru28
  • 6
  • 5
  • 2
2 Solutions
 
fritz_the_blankCommented:
That won't work!!!

You will have to upload the file to your server first and then attach it to your message.

So:

1) create a form that allows uploading of files
2) find some sort of upload script or component
3) upload the file to your server
4) attach the uploaded file to your message

This is a rather complicated affair.

FtB
0
 
iscodeCommented:
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
fritz_the_blankCommented:
@iscode--

The big issue here is not sending the mail--the CDONTS code is already in place--but rather that you cannot send a file from a client machine without uploading the file to the server first.

FtB
0
 
iscodeCommented:
my second post deletes the file from server after sending it

would that work?
0
 
fritz_the_blankCommented:
>>my second post deletes the file from server after sending it<<

I couldn't see the code there without joining the forum, so I don't know.

FtB
0
 
iscodeCommented:

Fritz

I was posting to aspguru28 I thought it was he who was asking for help here?

and it  wasnt a question just a fact

cool down Fritz
0
 
iscodeCommented:
I can post that code here if you want it

let me know
0
 
aspguru28Author Commented:
Hi

Some code would be very handy. Thanks
0
 
iscodeCommented:
aspguru28

ok its 2 files

Create the file, change the path to the path U use for temp storage of the file
            'make sure you have the IUSR_YOURCOMPUTER granted WRITE access to the uploads dir




cvupload2.htm
-----------------

<html>
<head>
<title>Upload your resume using this form </title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script language="JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="8">
<form METHOD="POST" ENCTYPE="multipart/form-data" action="cvupload.asp?ACTION=1" name="mailform" id="mailform">
  <table border="1" align="center" width="625" bgcolor="#CCCCCC" bordercolor="#660033">
    <tr bordercolor="#FFFFFF">
      <td width="123"></td>
      <td width="486"></td>
    </tr>
    <tr bordercolor="#FFFFFF">
      <td valign="top" colspan="2" class="text">
        <h4 align="center"><font color="#660033"><strong><u>Upload Resume</u></strong></font></h4>
      </td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td class="text" align="left"><font color="#0000FF"><b>E-mail Id</b></font></td>
      <td valign="top" class="text" align="right">
        <div align="left">
          <input class="text" type=text name=MyEmailid size="35">
        </div>
      </td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td class="text" align="left"><font color="#0000FF"><b>Name</b></font></td>
      <td valign="top" align="right">
        <div align="left">
          <input class="text" name="MyName" size="35">
        </div>
      </td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td class="text" align="left"><b><font color="#0000FF">Position</font></b></td>
      <td valign="top" align="right">
        <div align="left">
          <select size="1" name=MyPosition>
            <option value="None">None</option>
            <option value="Analyst / Consultant">Analyst / Consultant</option>
            <option value="Business Development Manager">Business Development
            Manager</option>
            <option value="Bank Officer">Bank Officer</option>
            <option value="CEO/Chairman">CEO / Chairman</option>
            <option value="Company Secretary">Company Secretary</option>
            <option value="Customer Service Executive">Customer Service Executive</option>
            <option value="Engineer">Engineer</option>
            <option value="Editor / Journalist / Writer">Editor / Journalist /
            Writer</option>
            <option value="Finance Controller / Executive">Finance Controller
            / Finance Executive</option>
            <option value="Fresher">Fresher</option>
            <option value="Freelancer">Freelancer</option>
            <option value="General Manager / Director">General Manager / Director</option>
            <option value="Graphic Artist / Multimedia Programmer">Graphic Artist
            / Multimedia Programmer</option>
            <option value="Human Resources Executive">Human Resources Executive</option>
            <option value="House Wife">House Wife</option>
            <option value="Internet Programmer / Web Designer">Internet Programmer
            / Web Designer </option>
            <option value="Marketing / Sales - Manager">Marketing Manager (inc.
            Sales)</option>
            <option value="Marketing / Sales - Exec">Marketing / Sales Executive</option>
            <option value="Medical Transcriptionist">Medical Transcriptionist</option>
            <option value="Office Assistant">Office Assistant</option>
            <option value="Purchasing Manager">Purchasing Manager</option>
            <option value="Software Programmer">Software Programmer</option>
            <option value="Technical / IT Manager">Technical / IT Manager</option>
            <option value="Technician">Technician</option>
            <option value="Team Leader">Team Leader</option>
            <option value="Student">Student</option>
            <option value="Other">Other</option>
          </select>
        </div>
      </td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td valign="middle" class="text"><b>JobCode </b></td>
      <td valign="middle">
        <input type="text" name="jobcode" class="mystyle1" maxlength="8" size="9">
      </td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td valign="top"><b><font color="#660033">Any Other Info</font></b></td>
      <td valign="middle" class="text" align="right">
        <div align="left">
          <textarea class="text" rows="4" name="MyText" wrap="VIRTUAL" cols="35"></textarea>
          <b><i>(</i></b> <b><i>max 50 Words)</i></b> </div>
      </td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td valign="middle">
        <p><b></b></p>
      </td>
      <td valign="top" class="text" align="right">
        <div align="left"> </div>
      </td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td colspan="2" valign="top" class="text" align="center">
        <div align="left"><b><font color="#0000FF">Attach Resume:</font></b>
          <input TYPE="file" NAME="blob" value>
          <input TYPE="HIDDEN" NAME="where" value="Fileupload">
          <!-- change the value of this hidden field to change the directory of where uploads are stored-->
        </div>
      </td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td></td>
      <td></td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td colspan="2" valign="top" class="text"><font color="#660033"><i>Click
        <input class="text" type="submit" value="Submit" id=submit1 name=submit1>
        only once Pls !</i></font></td>
    </tr>
    <tr bordercolor="#CCCCCC">
      <td colspan="2" valign="top" class="text">
        <div align="right"><font color="#660033"> <font size="2">&nbsp;<font size="1">
          <span style='font-family:Arial'><a
  href="javascript:window.close();">CLOSE THIS WINDOW </a></span></font></font></font></div>
      </td>
    </tr>
  </table>
</form>
</body>
</html>

------------------
cvupload2.asp
------------------


<%
   Response.Buffer = true
   Function BuildUpload(RequestBin)

   PosBeg = 1
   PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
   boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
   boundaryPos = InstrB(1,RequestBin,boundary)

   Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
   Dim UploadControl
   Set UploadControl = CreateObject("Scripting.Dictionary")
   Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
   Pos = InstrB(Pos,RequestBin,getByteString("name="))
   PosBeg = Pos+6
   PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
   Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
   PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
   PosBound = InstrB(PosEnd,RequestBin,boundary)
   
   If PosFile<>0 AND (PosFile<PosBound) Then

        PosBeg = PosFile + 10
        PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
        FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        UploadControl.Add "FileName", FileName
        Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
        PosBeg = Pos+14
        PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
        ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        UploadControl.Add "ContentType",ContentType

        PosBeg = PosEnd+4
        PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
        Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)

   Else
 
        Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
        PosBeg = Pos+4
        PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
        Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))

   End If

        UploadControl.Add "Value" , Value
        UploadRequest.Add name, UploadControl
        BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
        Loop

   End Function

   Function getByteString(StringStr)
   For i = 1 to Len(StringStr)

        char = Mid(StringStr,i,1)
        getByteString = getByteString & chrB(AscB(char))

   Next
   End Function


   Function getString(StringBin)
        getString =""
   For intCount = 1 to LenB(StringBin)
        getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
   Next
   End Function


   If request("Action")="1" then

        Response.Clear
        byteCount = Request.TotalBytes
        RequestBin = Request.BinaryRead(byteCount)
        Set UploadRequest = CreateObject("Scripting.Dictionary")
        BuildUpload(RequestBin)
            
            'Create the file, change the path to the path U use for temp storage of the file
            'make sure you have the IUSR_YOURCOMPUTER granted WRITE access to the uploads dir

   If UploadRequest.Item("blob").Item("Value") <> "" Then

        contentType = UploadRequest.Item("blob").Item("ContentType")
        filepathname = UploadRequest.Item("blob").Item("FileName")
        filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
        FolderName = UploadRequest.Item("where").Item("Value")
        Path = Mid(Request.ServerVariables("PATH_TRANSLATED"), 1, Len(Request.ServerVariables("PATH_TRANSLATED")) - Len(Request.ServerVariables("PATH_INFO")))  
        ToFolder = Path & "\" & FolderName
        value = UploadRequest.Item("blob").Item("Value")
        filename = ToFolder & "\" & filename
        Set MyFileObject = Server.CreateObject("Scripting.FileSystemObject")
        Set objFile = MyFileObject.CreateTextFile(filename)
 
   For i = 1 to LenB(value)

       objFile.Write chr(AscB(MidB(value,i,1)))

   Next
       objFile.Close
       Set objFile = Nothing
       Set MyFileObject = Nothing

   End If
         jobcode = UploadRequest.Item("jobcode").Item("Value")
         MyPosition = UploadRequest.Item("MyPosition").Item("Value")
       MyText = UploadRequest.Item("MyText").Item("Value")
       MyEmailid = UploadRequest.Item("MyEmailid").Item("Value")
         MyName = UploadRequest.Item("MyName").Item("Value")
       Set UploadRequest = Nothing    
        
       body="<html><body><p align='center'><b><font size='5' face='Times New Roman' color='#0000FF'>Resume Details </font></b></p>"
      body=body & "<table align='center'>      <tr><td><font size='3' face='Times New Roman' color='#660033'><b>Post Applied for&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></td><td><font size='3' face='Times New Roman' color='#660033'>" & jobcode & "</td></tr>"
body=body & "<table align='center'><tr><td><font size='3' face='Times New Roman' color='#660033'><b>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></td><td><font size='3' face='Times New Roman' color='#660033'>" & MyName & "</td></tr>"
body=body & "<tr><td><font size='3' face='Times New Roman' color='#660033'><b>Current Position&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></td><td><font size='3' face='Times New Roman' color='#660033'>" & MyPosition & "</td></tr>"
body=body & "<tr><td><font size='3' face='Times New Roman' color='#660033'><b>Other Info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></td><td><font size='3' face='Verdana' color='#0000FF'>" & MyText & "</td></tr>"
body = body & "</table></body></html>"

            
       Set objCDOMail = Server.CreateObject("CDONTS.NewMail")
       ObjCDOMail.From = MyEmailid
       ObjCDOMail.To = "the mail id you want the message to be sent"
       ObjCDOMail.BodyFormat = 0
       ObjCDOmail.Mailformat = 0
       ObjCDOMail.Subject = "Application from a  " & MyPosition
       ObjCDOMail.Body = body

   If Len(filename) > 5 then

      ObjCDOMail.AttachFile filename,nikfile
   

   end if

       ObjCDOMail.Send
       Set ObjCDOMail = Nothing
        
         ' Now the file in the uploads dir can be deleted
        
                    Set fso = CreateObject("Scripting.FileSystemObject")
           
                              fso.DeleteFile filename
        set fso = nothing
        
   End If
   
 %>
<html>
<script language='javascript'>
alert("Thank You for Registering Yor Resume");
location.replace("cvupload2.htm");
</script>
</html>

-----------------

hope this helps you
0
 
fritz_the_blankCommented:
In regard to the upload portion, please see this very useful resource:

http://www.taka.nl/programming/asp/comparing_fileupload.asp

FtB
0
 
aspguru28Author Commented:
Guys

The spec of this has changed now and the client simply wants the file uploaded to a directory and a hyperlink within the body of the email to point to it.

Many thanks for your help though.  It's been interesting to look at.

0
 
fritz_the_blankCommented:
Glad to have helped and good luck with the project,

FtB
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 6
  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now