Windows Mobile

Ein Windows Mobile ABC: M wie MailComposeMessage

Egal wie sehr man sich bemüht, es kann immer mal ein Problem mit der eigenen Software geben.
Wie schön ist es in so einem Fall als Entwickler eine Problembeschreibung und am besten auch Logdateien von dem Problem zu erhalten.
Der Anwender darf dann alles schön aufschreiben, die benötigten Dateien zusammensuchen, und irgendwie an den Entwickler weiterleiten.
Der Entwickler sieht sich dann oftmals damit konfrontiert nur eine Logdatei ohne Fehlerbeschreibung zu erhalten, eine Fehlerbeschreibung ohne Logdatei oder einfach nur unzureichende Informationen zu bekommen.
Komfortabler für beide Seiten wäre es daher dem Anwender eine solche Funktion direkt zur Verfügung zu stellen. Analog zu einem Bugtrackingsystem könnte der Anwender das betreffende Modul bzw. Funktionalität über eine Form/Dialog auswählen,
benötigte Anmerkungen setzen und das Programm sucht sich die Logdateien selbst zusammen. Dann fehlt nur noch die Übermittlung.
Hier kommt die Funktion MailComposeMessage ins Spiel.
Anhand der MAILCOMPOSEFIELDS Struktur kann eine Email vordefiniert werden.
Beispiel:
//Struktur anlegen
MAILCOMPOSEFIELDS mcpSupportMail;
memset(&mcpSupportMail,0,sizeof(MAILCOMPOSEFIELDS));
//Größe setzen
mcpSupportMail.cbSize = sizeof(MAILCOMPOSEFIELDS);
//Betreff
mcpSupportMail.pszSubject = L"Support-Request: Produkt";
//An
mcpSupportMail.pszTo = L"support@firma.com";
//Text
mcpSupportMail.pszBody = L"Hilfe!";
//Anhang
mcpSupportMail.cAttachments = 1;
mcpSupportMail.pszAttachments = L"\programm.log";
//Nachrichtenaccount
mcpSupportMail.pszAccount = L"t-online.de";
mcpSupportMail.dwFlags = MCF_ACCOUNT_IS_NAME;
//Erstellen
HRESULT hr = MailComposeMessage(&mcpSupportMail);
//Synchronisisieren
MailSyncMessages(L"t-online.de",MCF_ACCOUNT_IS_NAME);

Beim Aufruf der MailComposeMessage Funktion bekommt der Anwender die Email zur Anzeige und muss das versenden bestätigen.
Danach kommt die Funktion zurück und wir können über MailSyncMessages den Versand der Email anstoßen.
Zu beachten ist hier die Anzahl der Anhänge. Es kann nämlich nur einen Anhang geben.
Wer also mehrere Dateien versenden will muss diese vorher als Archiv verpacken.
Mit dem fest codierten "pszAccount" Namen habe ich es mir etwas einfach gemacht. Wer die Accountnamen dynamisch anzeigen/auslesen will kann sich das MailSet Sample aus dem SDK anschauen.

– Patrick

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s