LL14: Probleme beim E-Mail-Versand

Hallo,

wir haben hier seltsame Phänomene beim E-Mail-Versand mit LL14/Delphi 2007/Simple MAPI.

Unser Programm bietet neben dem Drucken natürlich auch das Verschicken einer Rechnung als E-Mail mit PDF-Anhang an. Klappt eigentlich auch ganz gut, allerdings nicht auf allen Rechnern.

Problem 1:

Das Anstoßen des E-Mail-Versands über LL klappt auf einigen Rechnern immer erst beim zweiten Mal. Ich wähle also eine Rechnung aus, will sie verschicken und das Programm erstellt auch im Hintergrund das PDF, aber anschließend wird der E-Mail-Dialog nicht geöffnet. Mache ich genau das gleiche nochmal, wird der Dialog geöffnet. Das Log-File bringt übrigens keinen Fehler, die Mail-Optionen werden gesetzt, nur der Mail-Client öffnet sich nicht.

Problem 2:

Ab und zu friert der Mail-Dialog und damit auch unsere Anwendung ein, sobald man die Empfängeradresse im Mail-Dialog eingetragen hat und in ein anderes Eingabefeld wechselt.

Auf manchen Rechnern funktioniert alles einwandfrei, egal, mit welchem E-Mail-Client, auf anderen haben wir entweder Problem 1 oder 2 oder sogar beide, mit den gleichen E-Mail-Clients, die andere Kunden auch verwenden.

Problem 3:

Dieses Problem ist zwar selten, aber es kommt vor. Der E-Mail-Client öffnet sich und behauptet auch, die E-Mail würde verschickt werden, aber sie verschwindet im Nirwana. Öffnet man den gleichen E-Mail-Client von Hand und verschickt an den gleichen Empfänger mit dem gleichen Absender eine Mail, geht die Mail raus.

Hat jemand eine Idee, wie wir diesen Problemen auf die Schliche kommen können?

Kleines Update: Nachdem ich gefühlte Trillionen Ideen, die ich im Netz gefunden habe, ausprobiert habe, bin ich ein klein wenig schlauer, zumindest was Problem 2 betrifft: Momentan wird verlässlich der E-Mail-Dialog geöffnet (Outlook Express 6 auf Windows XP), aber sobald der Dialog offen ist, sieht es so aus, als ob OE hängen würde, weil der Dialog nicht auf die Maus reagiert und auch nichts im Feld ‘An:’ eingetragen oder geändert werden kann (obwohl da schon was gültiges steht und auch der Cursor munter vor sich hin blinkt). In diesem Fall bleibt dann nur das brutale Abwürgen der Anwendung.

Durch Zufall bin ich nun darauf gestoßen, dass OE gar nicht wirklich tot ist - Tastenkürzel funktionieren noch, ich kann also z.B. über ALT-D das Menü “Datei” öffnen, mit der Maus oder den Cursortasten auch die anderen Menüpunkte anwählen und Aktionen auswählen. Geht alles, auch Versenden der Mail. Nur Bearbeiten lässt sich nichts.

Wenn ich jedoch über ALT-D zuerst das Menü öffne und dann “Datei>Neu>E-Mail-Nachricht” wähle und eine neue Mail erstelle, kann ich in diesem neuen Fenster alles bearbeiten. Schließe ich das neue Fenster (auch ohne irgendwas eingetragen zu haben), kann ich anschließend auch alle Eingabefelder der ursprünglichen Nachricht bearbeiten; allerdings ist der Dialog dann nicht mehr modal. Komisch, oder?

Übrigens ist es egal, ob ich über LsMailConfigurationDialog SImple MAPI oder Simple MAPI (System-Dialog) wähle. Extended MAPI geht gar nicht, nebenbei bemerkt. Beim Versenden einer Test-Mail über den entsprechenden Knopf im LsMailConfigurationDialog erhalte ich folgende Fehlermeldung:

[quote]Die Test-Mail konnte nicht versendet werden.

Wenn Sie den Grund nicht erkennen, bitten Sie Ihren Administrator um Hilfe und zeigen Sie ihm die folgenden Informationen:

unexpected: mail connection interface for provider ‘XMAPI’ cannot be created in DLL ‘cmmx14.dll’
[/quote]

Kann sich jemand darauf einen Reim machen?

Der Übeltäter ist identifiziert: Seit Delphi 2007 erhält ein neu erstelltes Projekt automatisch die Zeile

Application.MainFormOnTaskbar := True;

in der Projektdatei, direkt hinter Application.Initialize;

Bleibt diese Zeile drin, kommt es zu obigem seltsamen Verhalten von Outlook Express 6 (sieht aus wie eingefroren, nimmt keine Mausaktionen an). Kommentiert man die Zeile aus, funktioniert Outlook Express 6 beim Mailversand ohne Probleme.

Allerdings hat das Entfernen der Zeile ungewollte Nebeneffekte in der Fensterverwaltung (Z-Order etc.), man sollte sich also gut überlegen, ob man auf diese Zeile wirklich verzichten kann. Ich warte jetzt auf das bestellte LL16 und hoffe, dass sich das Problem dann erledigt hat.