Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Mails versenden über Live Mail (https://www.delphipraxis.net/170865-mails-versenden-ueber-live-mail.html)

schaumermal 7. Okt 2012 11:37


Mails versenden über Live Mail
 
Hallo zusammen,

kann mir jemand bei folgendem Problem helfen:

Mit dem folgenden Code erstelle ich eine Email:

Delphi-Quellcode:
function EMailErstellen(EMail, Betreff, EMailTextHTML:String; Anhang:TStrings):Boolean;
Var OutlookApplication: Variant;
    Mailitem, ObjectInspector, WordEditor: OleVariant;
    s:string;
    I:Integer;
begin
  try
    OutlookApplication := GetActiveOleObject('Outlook.Application');
  except
    try
      OutlookApplication := CreateOleObject('Outlook.Application');
    except
    end;
  end;
  .
  .
  .
end;
Ich erhalte jetzt aber auf Rechnern mit Win7 ohne Outlook aber mit LiveMail die Meldung "Ungültige Variant-Operation" bei dem Aufruf OutlookApplication := GetActiveOleObject('Outlook.Application')

Da dies bisher immer ging stehe ich auf dem Schlauch wo ich noch nachschauen kann warum auf einmal die Meldung erscheint.

Kann hier jemand helfen?

sx2008 7. Okt 2012 12:09

AW: Mails versenden über Live Mail
 
Wenn Outlook nicht installiert ist, musst du natürlich mit einer Fehlermeldung aussteigen:
Delphi-Quellcode:
begin
  try
    OutlookApplication := GetActiveOleObject('Outlook.Application');
  except
    try
      OutlookApplication := CreateOleObject('Outlook.Application');
    except
      raise Exception.Create('MS Outlook kann nicht geöffnet werden');
    end;
  end;

schaumermal 7. Okt 2012 12:36

AW: Mails versenden über Live Mail
 
Hi,

danke für Deine Rückmeldung. Mit der Fehlerbehandlung hast Du natürlich Recht!

Allerdings verstehe ich nicht, warum diese Fehlermeldung "auf einmal" kommt.
Bisher lief dieser Programmcode einwandfrei und ich konnte über LiveMail auch Mails erstellen.

Bernhard Geyer 7. Okt 2012 12:50

AW: Mails versenden über Live Mail
 
Zitat:

Zitat von schaumermal (Beitrag 1186071)
Hi,

danke für Deine Rückmeldung. Mit der Fehlerbehandlung hast Du natürlich Recht!

Allerdings verstehe ich nicht, warum diese Fehlermeldung "auf einmal" kommt.
Bisher lief dieser Programmcode einwandfrei und ich konnte über LiveMail auch Mails erstellen.

Definiere: "Auf einmal". Gleicher PC von heute auf morgen?

schaumermal 7. Okt 2012 13:02

AW: Mails versenden über Live Mail
 
Hi,

ja es handelt sich um die gleichen PC's (also mehrere) bei denen nun dies Problem auftritt.
Was in der Zwischenzeit passiert ist, ist dass ich das Programm weiterentwickelt habe OHNE jedoch diesen Teil des Codes zu verändern.

Aber nun erhalte ich diese Meldung beim erstellen der Mail.

Es sieht also so aus, als ob durch die Neucompileierung nun das Problem entstanden ist :(
Nur kann ich mir dies nicht erklären, da dieser Programmcode vorher ordnungsgemäß lief.

Bernhard Geyer 7. Okt 2012 13:07

AW: Mails versenden über Live Mail
 
GetActiveOleObject gibt Interfacezeiger auf laufende instanz zurück. Läuft den outlook zu dem entsprechende zeitpunkt?


Hast du auch den vergleich zwischen alter Exe und neuer Exe am gleichen PC ohn sonst zwischendurch zu verändern?

schaumermal 7. Okt 2012 13:19

AW: Mails versenden über Live Mail
 
Auf diesen Rechnern ist KEIN Outlook installiert und trotzdem lief diese Funktion reibungslos.
Da natürlich nicht sichergstellt ist, dass Outlook läuft versuche ich dieses ja zu starten (CreateOleObject) falls nicht aktiv.

Code:
begin
  try
    OutlookApplication := GetActiveOleObject('Outlook.Application');
  except
    try
      [B]OutlookApplication := CreateOleObject('Outlook.Application');[/B]
    except
      raise Exception.Create('MS Outlook kann nicht geöffnet werden');
    end;
  end;
Aber auch OutlookApplication := CreateOleObject('Outlook.Application') liefert die Meldung ungültige Variant-Operation.

Kann man den nicht Windows Live starten (aber nicht über ShellExecute(...), da ich teilweise auch Dateihänge an die Mail anfügen muss)?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz