I wrote this a while back as I couldn’t find a nice example anywhere for sending SPF compliant CDO.message emails. It also copes with setting message importance which is another awkward thing. Let me know if you have any problems or have any suggestions to improve it.
Sub sendemail(strFrom, strTo, strSender, strBcc, _
strSubject, strBody, intType, intImportance)
Dim objMessage ' As CDO.Message
objMessage = Server.CreateObject("CDO.Message")
With objMessage
.Fields("urn:schemas:httpmail:importance").Value = intImportance
.Fields("urn:schemas:httpmail:priority").Value = intImportance - 1
Select Case intImportance
Case 0
.Fields("urn:schemas:mailheader:X-Priority").Value = 5
Case 1
.Fields("urn:schemas:mailheader:X-Priority").Value = 3
Case 2
.Fields("urn:schemas:mailheader:X-Priority").Value = 1
Case Else
.Fields("urn:schemas:mailheader:X-Priority").Value = 0
End Select
.Fields("urn:schemas:mailheader:X-MSMail-Priority").Value = intImportance
If Not isNull(strSender) and strSender strFrom then
.Fields("urn:schemas:mailheader:return-path").Value = strSender
.Fields("urn:schemas:mailheader:reply-to").Value = strFrom
End If
.Fields.Update()
.To = strTo
If Not isNull(strSender) and strSender strFrom then
.Sender = strSender
End If
If Not isNull(strBcc) Then
.BCC = strBcc
End If
.From = strFrom
.Subject = strSubject
If CInt(intType) = 1 Then
.TextBody = strBody
Else
.HTMLBody = strBody
End If
.Send()
End With
objMessage = Nothing
End Sub
This is generally useful for web generated emails (like send a friend forms etc.), simply specify the users address as strFrom and a generic local address (noreply@mydomain.com) as strSender.
More generally, here are some good CDO examples.
