Discussion:
Outlookansteuerung 2 Konten
(zu alt für eine Antwort)
Jörg Schneider
2010-04-28 06:44:35 UTC
Permalink
Hallo zusammen!

Ich habe ein Problem mit dem automatisierten Versenden von E-Mails.
Ich möchte beim Senden nicht das Standard-Konto verwenden, sondern
ein zweites (POP3-) Konto. Mein Programm (s.u.) läuft zwar fehlerfrei,
aber leider verwendet es weiterhin das Standard-Konto. Offensichtlich
klappt die Zuweisung 'loEmail.SendUsingAccount = loAccountItem' nicht.
Kann mir hier jemand helfen? In VB funktioniert das ganze?!

Hier der Source Code:

local loOutlook as Object, ;
loNameSpace as Object, ;
loAccounts as Object, ;
loAccountItem as Object, ;
loEmail

loOutlook = createobject([OUTLOOK.APPLICATION])
loNameSpace = loOutlook.GetNamespace('MAPI')
loAccounts = loNameSpace.Accounts
loEmail = loOutlook.createItem(0)

* Es ist sichergestellt, dass das ein valides POP3-Konto ist!
loAccountItem = loAccounts.Item(2)

* Nach der Zuweisung ist SendUsingAccount noch immer .NULL.
loEmail.SendUsingAccount = loAccountItem

loEmail.subject = [Test-E-Mail]
loEmail.To = [***@z.de]
loEmail.Body = [Test]

* Die E-Mail wird mit dem Default-Konto versendet, und nicht
* mit dem oben zugewiesenen Konto!
loEmail.send()

loAccountItem = null
loEmail = null
loAccounts = null
loNameSpace = null
loOutlook = null

return .t.
Jürgen Wondzinski
2010-04-28 09:36:36 UTC
Permalink
Und du bist dir sicher, dass "loAccounts.Item(2)" auch wirklich ein Verweis
auf ein bestehendes Konto ist?

Mach mal bei deinem Code aus dem LOCAL ein PUBLIC, und erforsche mal deine
Objektreferenzen.

Mach mal:
? loAccounts.Item(2).smtpAdress

Is das die Richtige?

Was passiert wenn du direkt zuweist:
loEmail.SendUsingAccount = loAccounts.Item(2)
--
wOOdy
Visual FoxPro Technologieberater
Microsoft "Most Valuable Professional" 1996 bis 2009



"*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
..·`.Visual FoxPro: It's magic !
(¸.·``··*
Jörg Schneider
2010-04-28 11:21:23 UTC
Permalink
"loAccounts.Item(2)" ist definitiv ein gültiges Konto, mit dem interaktiv problemlos E-Mails
versenden kann. Die Zuweisung "loAccountItem = loAccounts.Item(2)" liefert mir auch ein
gültiges Objekt, dessen Properties ich mir im Debugger ansehen kann.

Deine beiden Tipps habe ich ausprobiert, aber leider ohne Verbesserung.
Post by Jürgen Wondzinski
Und du bist dir sicher, dass "loAccounts.Item(2)" auch wirklich ein
Verweis auf ein bestehendes Konto ist?
Mach mal bei deinem Code aus dem LOCAL ein PUBLIC, und erforsche mal
deine Objektreferenzen.
? loAccounts.Item(2).smtpAdress
Is das die Richtige?
loEmail.SendUsingAccount = loAccounts.Item(2)
Loading...