Wrox Home  
Search P2P Archive for: Go

  Return to Index  

pro_vb thread: E-Mail


Message #1 by "Steve" <scalhoun@s...> on Sat, 16 Jun 2001 13:07:55 -0400
Philip,
CDO is a wrapper for MAPI.
There is a very good article  from the book "CDO and MAPI Programming with
Visual Basic" from www.oreily.com/catalog/cdomapi/chapter/ch07.html

I already created the procedure using this article for CDO 1.21 and it works
great.
Here is a sample:


****************************************************************************
*

Option Explicit

Public Type udtAttachmentType ' Definition of a Public UDT - so you can sent
multiple attachments with the same e-mail
   FullPath As String
   Name As String
   Type As String
End Type

Public Attchmnt_Exist As Boolean



Public Sub sb_SendMail(ByRef a_MailRecepients() As String, _
                       ByRef a_MessageText As String, _
                       ByRef a_Title As String, _
                       ByRef a_Attachments() As udtAttachmentType)

    Dim liCount As Integer
    Dim lStrTemp As String
    Dim lCDOSession As MAPI.Session
    Dim lCDOFolder As MAPI.Folder
    Dim lCDOMessages As MAPI.Messages
    Dim lCDOMessage As MAPI.Message
    Dim lCDOAttachments As MAPI.Attachments
    Dim lCDOAttachment As MAPI.Attachment
    Dim lCDORecepients As MAPI.Recipients
    Dim lCDORecepient As MAPI.Recipient

    Set lCDOSession = New MAPI.Session

    'lCDOSession.Logon fnNTDomainUserName
    lCDOSession.Logon g_MailBoxUser

    Set lCDOFolder = lCDOSession.Outbox

    Set lCDOMessage = lCDOFolder.Messages.Add

    
    With lCDOMessage
        .Subject = a_Title
        .Text = a_MessageText
    End With
    
    Set lCDORecepients = lCDOMessage.Recipients
    For liCount = 0 To UBound(a_MailRecepients)
        lStrTemp = a_MailRecepients(liCount)
        Set lCDORecepient = lCDORecepients.Add
        With lCDORecepient
            .Name = lStrTemp
            .Resolve
        End With
    Next liCount
    
    If Attchmnt_Exist Then
    
        Set lCDOAttachments = lCDOMessage.Attachments
        For liCount = 0 To UBound(a_Attachments)
            Set lCDOAttachment = lCDOAttachments.Add
            
            With lCDOAttachment
                .Source = a_Attachments(liCount).FullPath
                .Name = a_Attachments(liCount).Name
                .Type = a_Attachments(liCount).Type
                .Position = liCount
            End With
        Next liCount
        lCDOMessage.Update
    End If
    lCDOMessage.Send
    lCDOSession.Logoff

End Sub

**************************************************************8

Good luck!

	Eva


-----Original Message-----
From: philip.moh@a... [mailto:philip.moh@a...]
Sent: Friday, June 29, 2001 2:47 AM
To: professional vb
Subject: [pro_vb] RE: E-Mail


David

I copied and registered the cdo.dll library from the web server onto my
\system32 directory.
I have set the "Microsoft CDO 1.21 Library" from the Reference but I can't
do the following like yours... why?

Dim objMail as CDONTS.NewMail

After the "Dim objMail as" , I don't see the object listed from the
drop-down list...Please advise.

Thanks.




  Return to Index