Sending emails via a group

Posted on 2009-04-07
Last Modified: 2013-11-26
Hello All
I need to be able to send mails from my APP internally via exchange server and i have done this OK. Now the customer has seen that this is possible they want to expand on this a little and send to multiple people. I can set up groups such as sales and purchasing and have send mails like this from my APP, once again tested and all OK. Question is can i add users to exchange groups programatically/on the fly or do i need to do this manually before hand, I.E. add user a and user b to purchasing  or  can i select users from a list and write somthing to add them to a group

Hope that makes sense
Question by:bostonste
LVL 15

Accepted Solution

spprivate earned 500 total points
ID: 24091121
Here is a code .
Private Sub cmdAdd_Click()

On Error Resume Next


    Dim sysPath As String, sSrv As String, sFN As String, sOpenSTR As String

    Dim adoCon As New ADODB.Connection

    Dim adoRS As New ADODB.Recordset


    sysPath = App.Path


    sSrv = "R01" 'SQL production Database


    sFN = "Assoc"

    strFolderPath = "Public Folders\All Public Folders\" & sFN


    arrFolders() = Split(strFolderPath, "\")

    Set objApp = CreateObject("Outlook.Application")

    Set objNS = objApp.GetNamespace("MAPI")

    Set objFolder = objNS.Folders.Item(arrFolders(0))


    If Not objFolder Is Nothing Then

        For I = 1 To UBound(arrFolders)

            Set colFolders = objFolder.Folders

            Set objFolder = Nothing

            Set objFolder = colFolders.Item(arrFolders(I))

            If arrFolders(I) = sFN Then

                objFolder.ShowAsOutlookAB = True


                Set objDL = objFolder.Items.Add(Outlook.OlItemType.olDistributionListItem)

                objDL.DLName = sFN


                adoCon.ConnectionString = "driver={SQL Server};" & _

                               "server=" & sSrv & ";Trusted_Connection=Yes;database=RAS"

                If sFN = "Associates" Then

                    sOpenSTR = "'ASC'"


                    sOpenSTR = "'CR'"

                End If

                adoRS.Open "Exec RES_AddAssocOrCRS " & sOpenSTR, adoCon.ConnectionString, adOpenDynamic, adLockPessimistic

                If Not (adoRS.BOF And adoRS.EOF) Then


                    Do Until adoRS.EOF

                        Set objCI = objFolder.Items.Add(olContactItem)

                        With objCI

                            .FirstName = adoRS("Fname")

                            .LastName = adoRS("Lname")

                            .Email1Address = adoRS("Email_Address")

                            .Email1DisplayName = adoRS("Display_Name")

                            .SelectedMailingAddress = olHome

                            .Categories = sFN


                        End With


                        Set myMailItem = objApp.CreateItem(Outlook.OlItemType.olMailItem)

                        Set oRecipients = myMailItem.Recipients 'Resolve the current user just added by Email Address

                        oRecipients.Add (objCI.Email1Address) 'Add Contact Item as a recipient



                        objDL.AddMembers (oRecipients) ' if count > 109 - it bombs



                        Set objCI = Nothing 'in next Iteration

                        Set oRecipients = Nothing 'Empty Contact Item and Recipient Item




                End If

            End If


            If objFolder Is Nothing Then

                Exit For

            End If

        Next I

    End If


    Set objDL = Nothing


    Set adoRS = Nothing

    Close adoCon

    Set adoCon = Nothing

    Set objFolder = Nothing

    Set colFolders = Nothing

    Set objNS = Nothing

    Set objApp = Nothing

    Unload Me

End Sub

Open in new window

LVL 83

Expert Comment

ID: 24105695
One options is to run a loop and add all the emails to the Recipients collection of the Message rather than first adding to the group.

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
This video teaches viewers about errors in exception handling.
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now