Consulting

Results 1 to 2 of 2

Thread: How do I change the type of recipient of an automated email

  1. #1

    How do I change the type of recipient of an automated email

    Hello everyone,

    I am struggling to set every recipient in a mail to BCC, i have created a listbox with mailadresses but obviously i dont want all the customers to see each others emailadresses so i am trying to set them all to bcc. Here is the code what i have, and i just cant find the command to set them to BCC.

    [vba]

    Sub eMailDocument()


    Dim AppOutlook As Outlook.Application
    Dim OL As Object
    Dim EmailItem As Object
    Dim y As Long
    Dim TempChar As String
    Dim SaveName As String
    Dim i As Long


    Application.ScreenUpdating = False
    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(olMailItem)
    With EmailItem
    .Subject = "U heeft post ontvangen in U HuurEenBox postbox."
    .Body = "Beste HuurEenBox klant," & vbCrLf & vbCrLf & "Er is post voor u binnengekomen in uw HuurEenBox postbox. Deze kunt U afhalen bij het HuurEenBox filiaal in Aalsmeer." & vbCrLf & vbCrLf & "Met vriendelijke groet," & vbCrLf & "Het team van HuurEenBox."
    For i = 0 To ListBox2.ListCount - 1
    .Recipients.Add ListBox2.List(i, 0)
    Next i
    .Importance = olImportanceNormal 'Or olImportanceHigh Or olImportanceLow
    On Error GoTo fout
    .Send
    End With

    Application.ScreenUpdating = True
    Set OL = Nothing
    Set EmailItem = Nothing
    MsgBox ("Rapport verzonden")
    GoTo eind

    fout:
    MsgBox ("Outlook moet toestemming krijgen om de mail te kunnen versturen, verstuur bericht opnieuw.")
    eind:
    End Sub


    [/vba]

    please ignore the dutch in the msgboxes and mailbody

    TIA
    Frank

    *edit*

    i tried inserting this just after declaring the recipients but that doesnt seem to work
    [vba]
    For Each recipient In .Recipients
    Set .Type = olBCC
    Next recipient
    [/vba]

    i also try to use a variable and dim that as a recipient but that generates the same error messages, i am quite lost with this atm.

    TIA
    frank

    *edit*

  2. #2
    VBAX Master Killian's Avatar
    Joined
    Nov 2004
    Location
    London
    Posts
    1,132
    Location
    Hi Frank,

    I noticed, AppOutlook is defined as Outlook.Application (implying early-binding, i.e. you have set a reference to the Microsoft Outlook Object Model), but isn't used and the other outlook objects are declared as objects and late-binding is used.
    The reason I point this out is that if you haven't set a reference to the Microsoft Outlook Object Model, the Outlook constants you use won't have a value, so you'll need to use 0 for olMailItem and 3 for olBCC.

    I've tested the following options in OL2003. Both produce an email with one "To" recipient and 4 "BCC" [VBA]'#############################################################
    'with a reference set to the Microsoft Outlook Object Model
    Sub TestMailEarly()

    Dim OL As Outlook.Application
    Dim EmailItem As Outlook.MailItem
    Dim newRecip As Outlook.Recipient
    Dim i As Long

    Set OL = New Outlook.Application
    Set EmailItem = OL.CreateItem(olMailItem)
    For i = 1 To 5
    Set newRecip = EmailItem.Recipients.Add("Test " & i)
    If i > 1 Then newRecip.Type = olBCC
    Next i
    EmailItem.Display

    End Sub

    '#############################################################
    'WITHOUT a reference set to the Microsoft Outlook Object Model
    Sub TestMailLate()

    Dim OL As Object
    Dim EmailItem As Object
    Dim newRecip As Object
    Dim i As Long

    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(0)
    For i = 1 To 5
    Set newRecip = EmailItem.Recipients.Add("Test " & i)
    If i > 1 Then newRecip.Type = 3
    Next i
    EmailItem.Display

    End Sub[/VBA]
    K :-)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •