Seite 2 von 2

Verfasst: 16.04.2012, 18:52
von oma
Hallo allerseits,

was die Fehlermeldung "Senden per e-mail" betrifft, schaut mal bitte hier:

hier

Verfasst: 17.04.2012, 18:17
von Bodo1961
Hallo Oma

Ich habe mir das mal angesehen, aber das löst das Problem nicht. Zudem habe ich einen Standard MailClient (Mozilla Thunderbird) korrekt definiert.

Weil es mich jetzt aber doch interessiert hat, warum es anscheinend manchmal geht und manchmal nicht, habe ich auf einem anderen Rechner (XP Home) mit installiertem MS Outlook (nicht Outlook Express) meinen USB Stick mit Ahnenblatt Portable 2.70 angeschlossen. Ich habe Ahnenblatt Portable so eingerichtet, dass nach dem Start automatisch die zuletzt geöffnete AHN Datei geladen wird. Das Senden per E-Mail schlug hier fehl.

Dann habe ich mal die normale Ahnenblatt Version installiert und siehe da, hier funktioniert das Senden per E-Mail. Also muss es ja an Ahnenblatt Portable liegen. Weil ich davon ausgehe, dass Dirk die Funktion MAPISendDocuments aus der MAPI32.DLL verwendet, welche übrigens nur eine Stub Library ist, habe ich eine "fake" MAPI32.DLL geschrieben. Hört sich kompliziert an, sind aber nur ein paar Zeilen Code. Damit konnte ich feststellen, dass Ahnenblatt Portable sich nicht an die Vorgaben von Microsoft hält und nicht den kompletten Dateinamen inklusive Pfad an die Funktion weitergibt, sondern nur den Teil, welchen man auch in der AhnBlatt.ini findet:

[Allgemein]
...
LastFileName=.\Bodo.ahn
...


Ich habe jedoch festgestellt, dass man das Problem umgehen kann. Man geht auf "Datei -> Öffnen -> Ahnendatei" und öffnet die zu versendete erneut. Dann funktionierte das Senden per E-Mail. Zumindest auf diesem Rechner mit MS Outlook.

Auf meinem Arbeitsrechner mit Mozilla Thunderbird klappte es trotz erneuten Einlesens der Ahnendatei jedoch nicht. Ich fand jedoch folgenden Eintrag in Bugzilla:

Bug 565041 -
Summary: mapi error 11 MAPI_E_ATTACHMENT_NOT_FOUND always when calling MAPISendDocuments


Mit einem kleinen Testprogramm konnte ich feststellen, dass Mozilla Thunderbird unbedingt den Dateinamen in UNICODE braucht.

Man müsste also Ahnenblatt so ändern, das erstens immer der komplette Dateinamen an die Funktion MAPISendDocuments übergeben wird und zweitens sollte das Senden wiederholt werden, falls der Fehler 11 (MAPI_E_ATTACHMENT_NOT_FOUND) auftritt. Dann mit in UNICODE umgewandelten Dateinamen nochmals Versenden.

Aber persönlich brauche ich diese Funktion nicht. Und außerdem: Rechtsklick auf die AHN Datei, dann "Senden an... -> E-Mail Empfänder" auszuwählen geht auch.


Gruß
Bodo

Verfasst: 18.04.2012, 10:46
von Bodo1961
Falls es jemanden interessiert, stelle ich mal die von mir geschriebene MAPI32.DLL (ersetzt nicht das Original von Microsoft und dient nur zu Testzwecken !!! ) zum Download zur Verfügung (DLL und Sourcecode in Delphi).

Zur Verwendung in Ahnenblatt muss diese DLL im gleichen Verzeichnis wie AhnenblattPortable.exe (oder Ahnenblatt.exe) liegen. Wenn man dann auf "Senden per E-Mail" klickt, werden die Parameter für die MAPISendDocuments Funktion angezeigt. Mehr passiert da eigentlich nicht.

Das eigentliche Senden wird dadurch natürlich unterdrückt. Damit AB wieder die original MAPI32.DLL verwendet, einfach meine DLL löschen.

Gruß
Bodo