[AccessD] CDO/Priority flag.

Jim Dettman jimdettman at verizon.net
Tue Sep 23 08:33:46 CDT 2008


Doug,

  Thanks for that.  Pretty much already there.  Below is what I ended up
with.  Works with low, normal, and high priority.

Jim.

Public Sub DoEmailTask(strTaskName As String)

    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim strSQL As String
    
    Dim strMsg As String
    Dim strPriority As String

    Dim objcdoConfig As Object
    Dim objcdoMessage As Object
    
    On Error GoTo DoEmailTask_Error
  
    Set db = CurrentDb()
    strSQL = "SELECT * FROM tblEmailTasks WHERE [EmailTaskName] = '" &
strTaskName & "'"
    Set rst = db.OpenRecordset(strSQL)
    
    If rst.RecordCount = 0 Then
        ' Task name not in table
        strMsg = "Mail task name '" & strTaskName & "' was not found in
tblEmailTasks." & vbCrLf & vbCrLf
        MsgBox strMsg, vbCritical + vbOKOnly, "Invalid e-mail task name"
    Else
        ' Send the e-mail
        Set objcdoConfig = CreateObject("CDO.Configuration")
        Set objcdoMessage = CreateObject("CDO.Message")
        
        ' Don't rely on configuration settting on client
 
objcdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sen
dusing") = rst!SendUsing
 
objcdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smt
pserver") = rst!SMTPServer
 
objcdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smt
pauthenticate") = rst!SMTPAuthenticate
 
objcdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sen
dusername") = rst!SendUserName
 
objcdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sen
dpassword") = rst!SendUserPassword
 
objcdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sen
dusing") = rst!SendUsing
 
objcdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smt
pserverport") = rst!SMTPPort
 
objcdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smt
pusessl") = rst!UseSSL
 
objcdoConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smt
pconnectiontimeout") = rst!ConnectTimeout
        objcdoConfig.Fields.Update
 
        With objcdoMessage.Fields
           strPriority = Switch(rst![Priority] = -1, "Low", rst![Priority] =
0, "Normal", rst![Priority] = 1, "High")
           .Item("urn:schemas:mailheader:X-MSMail-Priority") = strPriority
' For Outlook 2003
           .Item("urn:schemas:mailheader:X-Priority") = rst![Priority]    '
For Outlook 2003 also
           .Item("urn:schemas:httpmail:importance") = rst![Priority] + 1 '
For Outlook Express
           .Update
        End With
        
        With objcdoMessage
             Set .Configuration = objcdoConfig
            .From = rst!From
            .To = rst!To
            .CC = rst!CC
            .BCC = rst!BCC
            .Subject = rst!Subject
            .TextBody = rst!Message
            
            .Send
        End With
    End If
    
DoEmailTask_Exit:
    On Error resume next

    Set objcdoConfig = Nothing
    Set objcdoMessage = Nothing
    
    If Not rst Is Nothing Then
        rst.Close
        Set rst = Nothing
    End If
    
    Set db = Nothing
    
    Exit Sub

DoEmailTask_Error:
    Resume DoEmailTask_Exit

End Sub


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Barnes
Sent: Tuesday, September 23, 2008 9:14 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] CDO/Priority flag.

Here's a snippet of code we use in a vbs script file to send emails with an
importance and priority set:

<<snip>>




More information about the AccessD mailing list