Hi everybody,
I'm having some problem with the utility of file attachment in the email. Whenever i'm trying to run the following code i'm getting an error message in the line 18 of SendMail.asp as "invalid class string". I'm also confused as what to write as the "SERVER_NAME". If you people can help me in this regard i'll be highly obliged. I'm herewith attaching the codes of the two ASP files named Default.asp and SendMail.asp.
Default.asp
<%@ Language=VBScript %>
<HTML>
<HEAD>
<%
Dim strServerURL 'Server Name including
http:// protocol
strServerURL = "
http://" + Request.ServerVariables("S
ERVER_NAME
")
Dim strServerURLFull 'Path to subweb directory
strServerURLFull = strServerURL & "/EmailApp"
Dim strTargetURL 'Directory where we will upload our file to
strTargetURL = strServerURLFull & "/uploaded_files"
Dim strRepostURL 'Path to the page we will display after our file uploads
strRepostURL = strServerURLFull & "/SendMail.asp"
Dim strPathToPA 'Path to the cpshost.dll
strPathToPA = strServerURL & "/Scripts/cpshost.dll"
Dim strPostingURL 'Action path for our form
strPostingURL = strPathToPA + "?PUBLISH?" + strRepostURL
%>
</HEAD>
<BODY bgcolor="white">
<!--The Form must include the enctype properties set to "multipart/form-data" or the upload will fail. -->
<FORM enctype="multipart/form-da
ta" action=="<% = strPostingURL %>" method="post" id="form1" name="form1">
<INPUT type="hidden" name="TargetURL" value="<% = strTargetURL %>">
<!--This hidden field is used to determine if a file post is being made.-->
<INPUT type="hidden" name="bolAttach" value="true">
<CENTER>
<TABLE bgcolor=Gray border=1>
<tr>
<td>From:</td>
<!--Who is this message from.-->
<td><INPUT id="FromBox" name="FromBox" maxlength="50" value=""></td>
<tr>
<!--Who is this message To.-->
<td>To:</td>
<td><INPUT id="ToBox" name="ToBox" maxlength="50" value=""></td>
<tr>
<!--This message's Subject.-->
<td>Subject:</td>
<td><INPUT id="SubjectBox" name="SubjectBox" maxlength="50" value="">
</td>
</tr>
<tr>
<!--This message's body.-->
<td colspan="2"><br><br>Messag
e:<br>
<TEXTAREA cols="40" id="MessageArea" name="MessageArea" rows="10"></TEXTAREA>
<br>
</td>
</tr>
<tr>
<td colspan="2" align="Left" valign="center">
Specify File Attachment Paths:
</td>
</tr>
<tr>
<!--Path to the file to attach to this message.-->
<td colspan="2" align="right" valign="center">
<INPUT name="my_file" type="file" size="20">
<br><br>
</td>
</tr>
<!--<tr>-->
<!--This message's importance.-->
<!--<td colspan="2" ><br>Importance Level:
<INPUT type="radio" id=optImpo name=optImpo value=0 checked>Low
<INPUT type="radio" id=optImpo name=optImpo value=1>Medium
<INPUT type="radio" id=optImpo name=optImpo value=2>High
<br></td>
<tr>-->
<!--Validating Submit Button.-->
<td colspan="2" align="right" valign="center">
<INPUT type="button" value="Send" id="button1" name="button1" LANGUAGE="javascript" onclick="return button1_onclick()">
<INPUT type="reset" value="Reset" id="reset1" name="reset1">
</td>
</tr>
</TABLE>
</CENTER>
</FORM>
<SCRIPT ID="clientEventHandlersJS"
LANGUAGE="javascript">
<!--
function button1_onclick() {
//Determine if there is a From address at all.
if(form1.FromBox.value =="")
{
//No from Address -Stop Submission
alert("You have not typed a From: Address.");
return;
}
//Determine if there is a To address at all.
if(form1.ToBox.value =="")
{
//No To Address -Stop Submission
alert("You have not typed a TO: Address.");
return;
}
//Determine if there is a subject at all.
if(form1.SubjectBox.value =="")
{
//No Subject - Question Submission
//Determine if they care.
var bolCancel = confirm("You have not typed a Subject continue?\n");
if(bolCancel==false)
{
//User clicked Cancel -Stop Submission
return;
}
}
if(form1.MessageArea.value
=="")
{
//No Message - Question Submission
//Determine if they care.
var bolStop = confirm("You have not typed a Message continue?\n");
if(bolStop==false)
{
//User clicked Cancel -Stop Submission
return;
}
}
SubmitForm();
}
function SubmitForm()
{
//File counter for the number of files on the Form
var FileNumber = 0;
//FormMain is set to the form1 of the document
var FormMain = document.forms("form1");
//Loop counter
var i;
//Start at zero and loop until i is equal to the number of
//elements in the page. Step i +1 per loop through
for (i=0;i<FormMain.elements.l
ength;i++)
{
if (FormMain.elements[i].name
== 'my_file' && FormMain.elements[i].value
.length > 0)
{
FileNumber++;
}
}
//If there are files being posted then send the file to the Posting Acceptor
//If not, skip to the send mail page with the Attachment boolean set to false.
if(FileNumber==0)
{
form1.bolAttach.value = "false"
form1.action = 'SendMail.asp';
//The encoding must be set to a different type in order to not
//use the posting acceptor.
form1.encoding = 'application/x-www-form-ur
lencoded';
form1.submit();
}
else
{
//There are files attached use normal submit.
form1.submit();
}
};
//-->
</SCRIPT>
</BODY>
</HTML>
SendMail.asp
<%@ Language=VBScript %>
<HTML>
<HEAD>
<TITLE>E-mail Sent Confirmation</TITLE>
</HEAD>
<BODY>
<HR>
<%
'Dim Message Variables
Dim objMsg, strFrom, strTo, strSubject,lngImportance
'Get the values to use with the message from the post.
strFrom = lcase(Trim(Request.Form("F
romBox")))
strTo = lcase(Trim(Request.Form("T
oBox")))
strSubject = Request.Form("SubjectBox")
lngImportance = CInt(Request.Form("optImpo
"))
'Create the Message Object
Set objMsg = Server.CreateObject("CDONT
S.NewMail"
)
'Set the properties of the Message
objMsg.From = strFrom
objMsg.To = strTo
objMsg.Subject = strSubject
'Use the actual Request Object so that you do not over load the string Data type.
objMsg.Body = Request.Form("MessageArea"
)
objMsg.Importance = lngImportance
'Determine if we need to attach a file.
Dim bolAttachmentPosted
bolAttachmentPosted = CBool(Request.Form("bolAtt
ach"))
If bolAttachmentPosted Then
'If do then where on the server can we get it
FilePathOnServer= Server.MapPath("/myEmailWe
bApp/uploa
ded_files"
)
FilePath_Name = FilePathOnServer & "\" & Request.Form("FileName") & Request.Form("FileExtentio
n")
'Attach it
objMsg.AttachFile FilePath_Name
End If
'Send Message
objMsg.Send
'Destroy the object
Set objMsg = Nothing
'Determine if there is a file on the server to delete.
If bolAttachmentPosted Then
Dim FSO
'Create a File System Object
Set FSO = server.CreateObject ("Scripting.FileSystemObje
ct")
'Delete the file from the server
FSO.DeleteFile FilePath_Name
'Destroy the object
Set FSO = Nothing
End If
'Write out results
Response.Write "The following message was sent via CDO for NTS:" & "<br>"
Response.Write "From: " & strFrom & "<br>"
Response.Write "To: " & strTo & "<br>"
Response.Write "Subject: " & strSubject & "<br>"
Response.Write "Importance: " & lngImportance & "<br>"
Response.Write "Body: " & Request.Form("MessageArea"
) & "<br>"
%>
</BODY>
</HTML>