Search code examples
emailasp-classiccdonts

Why does this email's cc property not work properly in ASP classic?


When a task is assigned to someone, the person that the task was previously assigned to is supposed to also be notified. However, this is not working. I am not sure why this email isn't being sent out to the .Cc email. Does anyone know how to fix this code? (The email IS being send to the msg.to recipient, and "testcc" does return the valid email address value.

Set msg=Server.CreateObject("CDONTS.NewMail")

strSQL = "select emailaddress from UserList where userid = "&assign&";"
Set rs = objConnection.Execute(strSQL, ,adCmdText)

if not(rs.BOF and rs.EOF) then
    temp = rs("emailaddress")
    if(temp<>"" and temp<>"NULL") then
        msg.To = rs("emailaddress")
    end if
end if

strSQL = "select emailaddress from UserList where username = '"&assignedTo&"';"
Set rs = objConnection.Execute(strSQL, ,adCmdText)
if not(rs.BOF and rs.EOF) then
msg.Cc = rs("emailaddress")
testcc = rs("emailaddress")
end if
Response.write(testcc)

msg.From = "[email protected]"
msg.Subject = relname & " TaskID: "&maintid&" - New Task Assignment"
msg.MailFormat = CdoMailFormatMime
msg.BodyFormat = CdoBodyFormatHTML
Enotes = ""
msg.Body = Body & Enotes
msg.Send()

Solution

  • 1st of all: CDONTS was deprecated in Windows 2000 and removed completely in Windows 2003.

    I suggest to use CDOSYS, which can be used from windows 2000 to windows 2008.

    Code sample:

        On Error Resume Next
            Set myMail = Server.CreateObject("CDO.Message")
            myMail.BodyPart.charset = "unicode-1-1-utf-8"
            myMail.Subject  = EmailSubject
            myMail.HTMLBody = EmailBody
            myMail.From = EmailFrom
            myMail.To = EmailTO
            myMail.Cc = EmailCC
            myMail.BCc = EmailBCC
    
            myMail.Send
            Result = 2
        If Err.Number <> 0 Then
            Result = -1
        End If
    
        Set myMail = Nothing