E-Mail Client automatisch starten und Empfänger eintragen

Alles rund um die Programmierung mit Qt
Antworten
darkshine
Beiträge: 102
Registriert: 20. August 2010 11:39

E-Mail Client automatisch starten und Empfänger eintragen

Beitrag von darkshine »

Guten Morgen,

meine Forensuche war leider ohne Erfolg. Ich würde gerne meinem Programm einen Menüpunkt "Logfiles senden" hinzufügen. Wenn man dies auswählt, dann soll sich der Standart E-Mail Client (Outlook, Thunderbird) öffnen, im Anhang sollen meine Logfiles stehen und meine E-Mail Adresse sollte eingetragen sein.
Der Nutzer muss also nur noch auf "senden" klicken.
Es würde auch reichen, wenn "nur" Outlook unterstützt wird.

Man kennt diese Funktion aus vielen Porgrammen und es wundert mich, dass ich nichts darüber gefunden habe. Die meisten E-Mail Themen beschäftigen sich mit dem schreiben eigener E-Mail Clients.

Vielen Dank
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Welches BS ?

unter windows gibt es die (Simple) MAPI, die genau fuer sowas zustaendig ist. Theorethisch sollt da alles einfach sein. Du schickst deine "Mail" per MAPI raus, und windows kuemmert sich selber um den Rest. Also ruft das registrierte Mail Programm auf, traegt Sender und Empfaenger ein, du musst dann nur noch mit "senden" das Ding rausfeuern.

Ciao ...
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Einiges geht schon mit QDesktopServices.
Ob das mit dem automatischen Anhang auch geht weiß ich nicht.

Code: Alles auswählen

QDesktopServices::openUrl(QUrl("mailto:user@foo.com?subject=Just a test"));
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Meine Firewall sendet mir die LogFiles immer als Nachrichtentext - vllt. ist das eine Alternative für dich.
Ansonsten liefert "google >> HTML mailto: add attachment" einiges an Ergebnissen, die ich jetzt aber nicht näher untersucht hab, obs auch mit QDesktopServices geht.
darkshine
Beiträge: 102
Registriert: 20. August 2010 11:39

Beitrag von darkshine »

Vielen Dank,

MAPI werde ich gleich ausprobieren.

Bei

Code: Alles auswählen

QDesktopServices::openUrl(QUrl("mailto:user@foo.com?subject=Just a test"));
Hier ist es wohl sehr umständlich einen Anhang anzufügen.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

darkshine hat geschrieben:Bei

Code: Alles auswählen

QDesktopServices::openUrl(QUrl("mailto:user@foo.com?subject=Just a test"));
Hier ist es wohl sehr umständlich einen Anhang anzufügen.
Ich habs jetzt extra versucht - und es geht!!!

Code: Alles auswählen

QDesktopServices::openUrl(QUrl("mailto:user@foo.com?subject=Just a test&attachment=/pfad/zum/file1&attachment=/pfad/zum/file2"));
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Hier ist es wohl sehr umständlich einen Anhang anzufügen.
Naja, MAPI iss ne COM Schnittstelle ... das erscheint manchmal auch recht umstaendlich :twisted:

Ciao ...
darkshine
Beiträge: 102
Registriert: 20. August 2010 11:39

Beitrag von darkshine »

Kann es sein, dass es mit Outlook nicht funktioniert?

Ich habe folgendes versucht.

[code]
QDesktopServices::openUrl(QUrl("mailto:user@foo.com?subject=Just a test&attachment=C:/setup.log"));
[/code]

Dies funktioniert bei mir nicht. Outlook wird geöffnet, aber es wird kein Anhang eingefügt
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

C:/setup.log ist auch kein korrekter Windows-Dateipfad. Das sollte ziemlich lustig werden, mit ganz vielen "\\\" :P (Ich hab kein WIndows und deshalb nur rudimentäres Wissen vom Höresagen, aber "\" muss in einem String immer escaped werde.)
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Nimm doch QDir als Hilfe

Code: Alles auswählen

QString file      = QDir::toNativeSeparators("C:/setup.log");
QString mailto = "mailto:user@foo.com?subject=Just a test&attachment=" + file;
QDesktopServices::openUrl(QUrl(mailto));
darkshine
Beiträge: 102
Registriert: 20. August 2010 11:39

Beitrag von darkshine »

Also irgenwie läuft das alles nicht bei mir....dabei ist es doch nur eine zeile :(

Code: Alles auswählen

QString filemail      = QDir::toNativeSeparators("C:/setup.log");
	qDebug() << filemail;
	QString mailto = "mailto:user@foo.com?subject=Just a test&attachment=" + filemail;
	QDesktopServices::openUrl(QUrl(mailto)); 
Auch da wird bei mir kein Anhang eingefügt. Kann es denn jemand mit Windows und Outlook testen? Ich kann doch da nicht soviel falsch machen :(
Antworten