[EXCEL, VBA] Emailen via CDO, SMTP server uit Outlook?

Pagina: 1
Acties:
  • 318 views sinds 30-01-2008
  • Reageer

  • ChrisM
  • Registratie: Juni 2004
  • Laatst online: 06:14
Ik gebruik onderstaande code om via Excel (VBA) een email te versturen. Nu gaat deze macro op verschillende computers in verschillende vestigingen worden gebruikt (die allemaal Outlook hebben), die ook verbinding hebben met verschillende Exchange servers. Het probleem is alleen dat om via CDO te emailen, je in dit geval een SMTP server moet invullen (van de Exchange server). Maar, aangezien het om verschillende vestigingen gaat, die met verschillende servers verbonden zijn, kan ik deze niet van te voren invullen.

Daarom vraag ik me af... is er een mogelijkheid om de SMTP server in te laten vullen, via de Accountinstellingen van Outlook? De mogelijkheid om te emailen via CreateObject("Outlook.Application").CreateItem(0) werkt wel, maar dan moet je in Outlook toestemming geven voor het versturen en dat gebruik ik dus liever niet. Deze waarschuwing komt niet via CDO.

Dit is de code die ik gebruik:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    Dim iMsg As Object
    Dim iConf As Object
    Dim wb As Workbook
    Dim Flds As Variant
    
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    
    iConf.Load -1    ' CDO Source Defaults
    Set Flds = iConf.Fields
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "*Exchange Server Adres*"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Update
    End With
    
    With iMsg
        Set .Configuration = iConf
        .To = "mijn emailadres"
        .CC = ""
        .BCC = ""
        .From = "zijn emailadres"
        .Subject = "Een onderwerpje"
        .TextBody = "Een body"

        .AddAttachment "Een_attachment.xls"
        .Send
    End With
        
    Set iMsg = Nothing
    Set iConf = Nothing
    Set wb = Nothing

Verwijderd

niet zo eenvoudig. je kan eens kijken in de volgende registry sleutels (kan zelf wel niet nagaan of de locatie van de sleutels correct is) (programmatorisch benaderen met api of scripting tools)
HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Default Mail Account
HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Default Mail Account\account
bij meerdere servers best keuze laten aan gebruiker.
ik veronderstel dat je de site van ron de bruin zelf al zonder succes uitgeplozen hebt naar een oplossing...