Groups | Blog | Home
all groups > iis smtp nntp > july 2005 >

iis smtp nntp : CDONTS to CDO mail codeing help please


Rick
7/29/2005 10:01:38 AM
I have been running CDONTS in my ASPpages to send emails sent to from my
guestbook. It had been working fine untill I upgraded to Server 2003 (I am
also running Exchange 2003) all locally. I will include the code I
originally used. I understand I should switch from CDONTS to CDO mail but
after several sttempts I am finding a very hard time getting the new CDO
mail to work properly. Any assistance with this would be greatly
appreciated. Here is the code:

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

'Set the response buffer to true so we execute all asp code before sending
the HTML to the clients browser
Response.Buffer = True

'Dimension variables
Dim strBody 'Holds the body of the e-mail
Dim objCDOMail 'Holds the mail server object
Dim strMyEmailAddress 'Holds your e-mail address
Dim strCCEmailAddress 'Holds any carbon copy e-mail addresses if you want
to send carbon copies of the e-mail
Dim strBCCEmailAddress 'Holds any blind copy e-mail addresses if you wish
to send blind copies of the e-mail
Dim strReturnEmailAddress 'Holds the return e-mail address of the user


'----------------- Place your e-mail address in the following
sting ----------------------------------

strMyEmailAddress = "me@mailserver.com"

'----------- Place Carbon Copy e-mail address's in the following sting,
separated by ; --------------

strCCEmailAddress = "" 'Use this string only if you want to send the carbon
copies of the e-mail

'----------- Place Blind Copy e-mail address's in the following sting,
separated by ; --------------

strBCCEmailAddress = "" 'Use this string only if you want to send the blind
copies of the e-mail

'---------------------------------------------------------------------------
--------------------------


'Read in the users e-mail address
strReturnEmailAddress = Request.Form("email")


'Initialse strBody string with the body of the e-mail
strBody = "<h2>E-mail sent from form on Web Site</h2>"
strBody = strBody & "<br><b>Name: </b>" & Request.Form("firstName") & " " &
Request.Form("lastName")
strBody = strBody & "<br><b>E-mail: </b>" & strReturnEmailAddress
strBody = strBody & "<br><br><b>Comments: - </b><br>" &
Replace(Request.Form("enquiry"), vbCrLf, "<br>")


'Check to see if the user has entered an e-mail address and that it is a
valid address otherwise set the e-mail address to
your own otherwise the e-mail will be rejected
If Len(strReturnEmailAddress)
< 5 OR NOT Instr(1, strReturnEmailAddress, " ") = 0 OR InStr(1,
strReturnEmailAddress, "@", 1)
< 2 OR InStrRev(strReturnEmailAddress, ".") < InStr(1,
strReturnEmailAddress, "@", 1) Then

'Set the return e-mail address to your own
strReturnEmailAddress = strMyEmailAddress
End If


'Send the e-mail

'Create the e-mail server object
Set objCDOMail = Server.CreateObject("CDONTS.NewMail")

'Who the e-mail is from (this needs to have an e-mail address in it for the
e-mail to be sent)
objCDOMail.From = Request.Form("firstName") & " " & Request.Form("lastName")
& " <" & strReturnEmailAddress & ">"

'Who the e-mail is sent to
objCDOMail.To = strMyEmailAddress

'Who the carbon copies are sent to
objCDOMail.Cc = strCCEmailAddress

'Who the blind copies are sent to
objCDOMail.Bcc = strBCCEmailAddress

'Set the e-mail body format (0=HTML 1=Text)
objCDOMail.BodyFormat = 0

'Set the mail format (0=MIME 1=Text)
objCDOMail.MailFormat = 0

'Set the subject of the e-mail
objCDOMail.Subject = "Guestbook Submission"

'Set the main body of the e-mail
objCDOMail.Body = strBody

'Importance of the e-mail (0=Low, 1=Normal, 2=High)
objCDOMail.Importance = 1

'Send the e-mail
objCDOMail.Send

'Close the server object
Set objCDOMail = Nothing
%>
<html>
<head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<title>Thank you</title>


</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990099"
alink="#FF0000">
<table width="95%" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td height="2">
<h1 align="center">Success !! !! !!</h1>
</td>
</tr>
</table>
<br>
<br>
<table width="85%" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td align="center"><B><h3> Thank-you <% = Request.Form("firstName")
%>&nbsp;<% = Request.Form("lastName") %>
for signing our guestbook. </h3>
<br>
</td>
</tr>
</table>
----------------------------------------------------------------------------
----------------------------------------------------------------------------
---------------------

Not sure if this is necessary or not but this is the code from the guestbook
front page.....
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------

<!-- Javascript function to check the submitted form has been filled in
correctly before submitting -->
<SCRIPT language="JavaScript">
<!-- Hide from older browsers

//Check the enquiry form is filled in correctly
function CheckForm () {

//Initialise variables
var errorMsg = "";

//Check for a first name
if (document.frmEnquiry.firstName.value == ""){
errorMsg += "\n\tFirst Name \t- Enter your First Name";
}

//Check for a last name
if (document.frmEnquiry.lastName.value == ""){
errorMsg += "\n\tLast Name \t- Enter your Last Name";
}

//Check for an e-mail address and that it is valid
if ((document.frmEnquiry.email.value == "") ||
(document.frmEnquiry.email.value.length > 0 &&
(document.frmEnquiry.email.value.indexOf("@",0) == - 1 ||
document.frmEnquiry.email.value.indexOf(".",0) == - 1))) {
errorMsg += "\n\tE-mail Address \t- Enter your valid e-mail address";
}

//Check for an enquiry
if (document.frmEnquiry.enquiry.value == "") {
errorMsg += "\n\tComments \t\t- Enter comments please";
}

//If there is aproblem with the form then display an error
if (errorMsg != ""){
msg =
"______________________________________________________________\n\n";
msg += "Your guestbook submition has not been sent because there are
problem(s) with the form.\n";
msg += "Please correct the problem(s) and re-submit the form.\n";
msg +=
"______________________________________________________________\n\n";
msg += "The following field(s) need to be corrected: -\n";

errorMsg += alert(msg + errorMsg + "\n\n");
return false;
}

return true;
}
// -->
</script>
<!-- Close the HTML document head -->
</head>
<!-- Start the HTML body -->
' <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990099"
alink="#FF0000">
<table width="95%" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td> <br>
P C
7/30/2005 10:30:43 PM
At first look, change this
Set objCDOMail = Server.CreateObject("CDONTS.NewMail")

to Set objCDOMail = Server.CreateObject("CDO.Message")

My suggestion, incorporatee the act of sending email into a sub and then
call it as many times as you need it. The advtage is that you have clean
code, you can cut and paste the sub in other pages to re-use and you can
include it in an "include" file to share with other pages of the same
application.

Here's a sub for sending text email
Sub SendCDOMailText(strFrom, strTo, strCc, strBbcc, strSubject, strBody)
Dim myMail
Set myMail=CreateObject("CDO.Message")
myMail.Subject= strSubject
myMail.From= strFrom
myMail.To= strTo
myMail.Bcc= strBCC
myMail.Cc= strCc
myMail.TextBody= strBody
myMail.Send
set myMail=nothing
End Sub

Here's a sub for sending HTML email
Sub SendCDOMailHTML(strFrom, strTo, strCc, strBbcc, strSubject, strBody)
Dim myMail
Set myMail=CreateObject("CDO.Message")
myMail.Subject= strSubject
myMail.From= strFrom
myMail.To= strTo
myMail.Bcc= strBCC
myMail.Cc= strCc
myMail.HTMLBody= strBody
myMail.Send
set myMail=nothing
End Sub

To send email call the sub like this with your matching variables
Call SendCDOMailHTML(myFrom, myTo, myCc, myBcc, mySubject, myBody)

use "" for BCC and cc if not sending to cc or bcc.

...PC

Chad
8/3/2005 5:44:03 AM
Have you checked to see if you are running in IIS 5 isloation mode. If this
is selected, sometimes the CDO does not work?

[quoted text, click to view]
AddThis Social Bookmark Button