Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Mit JS eine Datei als Anhang senden

Mit JS eine Datei als Anhang senden

dom_beta04.01.1404:40
Hallo,

gibt es irgendwo ein JS Script, mit dem man eine Datei als Anhang verschicken kann?

Also ich klicke auf <a href="javascript:sendmail()">Klick</a> ein Mail Fenster öffnet sich und hängt Datei1 an?

Geht so was?

Danke sehr!
„...“
0

Kommentare

micheee16.01.1412:17
Hi Dom,

das geht leider nicht: https://www.ietf.org/rfc/rfc2368.txt
The special hname "body" indicates that the associated hvalue is the
body of the message. The "body" hname should contain the content for
the first text/plain body part of the message. The mailto URL is
primarily intended for generation of short text messages that are
actually the content of automatic processing (such as "subscribe"
messages for mailing lists), not general MIME bodies.

Da du über die URL in den Body nur den ersten
text/plain
Part der Email setzen kannst erlaubt das keine Anhänge.

Wenn du Anhänge versenden willst brauchst du eine serverseitige Lösung (z.B. in PHP, Java, Ruby, Python).
0
Thomas Kaiser
Thomas Kaiser16.01.1412:29
dom_beta
gibt es irgendwo ein JS Script, mit dem man eine Datei als Anhang verschicken kann?

Also ich klicke auf <a href="javascript:sendmail()">Klick</a> ein Mail Fenster öffnet sich und hängt Datei1 an?

Geht so was?

Kommt drauf an, ob das überall funktionieren soll (dann nein) oder Du Randbedingungen auf den Rechnern, die diese Funktion per Browser nutzen sollen, definieren kannst (also das Ganze eine kundenspezifische Lösung ist -- in dem Fall haben wir sowas in der Vergangenheit durch Ausrollen von "Link Triggern" und der Funktionalität in AppleScript bzw. Automator erschlagen. Als Einstieg: http://applescript.tv/linktrigger/)
0
dom_beta16.01.1418:13
Hallo,

ich dachte an folgendes Prinzip.

Auf dem Server ist eine ICS Datei hinterlegt, der Link sagt "Termin zusenden".

Beim Klicken auf "Termin zusenden" soll sich das E-Mail-Programm öffnen, eine neue E-Mail verfassen und die dort hinterlegte Datei als Anhang einfügen.

Mit Javascript ist es ja durchaus möglich, dass sich das E-Mail-Programm öffnet und es ein neues Mailfenster bzw. Neue E-Mail erstellen öffnet mit einem vorgegebenen Betreff, Text etc. Nur leider ohne Anhang.

Das geht aber so nicht? Also mit Anhang?

Oder ich müsste darauf verzichten und die Adresse zu dieser Datei in die E-Mail einfügen lassen.
„...“
0
Thomas Kaiser
Thomas Kaiser17.01.1409:10
dom_beta
Beim Klicken auf "Termin zusenden" soll sich das E-Mail-Programm öffnen, eine neue E-Mail verfassen und die dort hinterlegte Datei als Anhang einfügen.

Der User, der auf den Link klickt, soll das .ics-Attachment an wen anders schicken? Oder sich selbst?

Das könnte auf dem Weg höchstens klappen, wenn die .ics-Datei auf dem Server liegen bleibt und Du einen http-Link in den Body der Mail reinkodierst (dann mußt Du allerdings einerseits drauf hoffen, dass der Empfänger der endgültigen Mail einen Hyperlink in text/plain a) überhaupt als solchen darstellt und b) beim Klick drauf auch der Termin dort so eingetragen wird, wie Du es erwartest oder wie es die meisten Mail-Clients beim Zusenden eines .ics-Attachments machen).

Ansonsten klappt das nur serverseitig und so wie es micheee beschrieb.
0
dom_beta18.01.1414:59
Thomas Kaiser
dom_beta
Beim Klicken auf "Termin zusenden" soll sich das E-Mail-Programm öffnen, eine neue E-Mail verfassen und die dort hinterlegte Datei als Anhang einfügen.

Der User, der auf den Link klickt, soll das .ics-Attachment an wen anders schicken? Oder sich selbst?

Ja, an andere. So nach dem Motto: "Aha, tolle Veranstaltung! Schicke ich gleich meinem Kollegen!"
Thomas Kaiser
Das könnte auf dem Weg höchstens klappen, wenn die .ics-Datei auf dem Server liegen bleibt und Du einen http-Link in den Body der Mail reinkodierst

du meinst, dass was ich oben schrieb? Also das durch das JS Skript die Adresse in die Mail eingetragen wird?
„...“
0
Thomas Kaiser
Thomas Kaiser18.01.1419:17
dom_beta
durch das JS Skript die Adresse in die Mail eingetragen wird?

Ah, das hast Du mit "Adresse" gemeint. Ja, das kann funktionieren, wenn Du für die .ics-Datei einen persistenten Link auf dem Server erzeugen kannst.

Ich würde aber ohne das Austesten aller möglichen Permutationen auf Client-Seite nicht davon ausgehen, dass das funktioniert bzw. die Idee abseits geschlossener Benutzergruppen (bzw. eher kontrollier-/vorgebbarer technischer Randbedingungen) verwerfen.

Du willst ja über ein mailto-Konstrukt den HTTP-Link in den Body der Mail bekommen. Es kann aber aus nachvollziehbaren Gründen (Schutz vor Phishing und sowas) bereits der Mail-Client, der den Link versenden soll, genau diesen spannenden Body-Part, also den Link, einfach unterdrücken

Beim Empfänger der Mail muß der Mail-Client einerseits überhaupt http://... als Link darstellen, dann kommt's drauf an, welcher URL-Handler sich darum kümmert (üblicherweise ein Browser) und was der dann mit der .ics-Datei macht bzw. mit Dateien des Mime-Types "text/calendar".

(auch wenn Du die .ics-Datei als Attachment verschickst, kann einiges schiefgehen. Aber das Gros heute gebräuchlicher Mail-Clients erlaubt mit einem Klick das Akzeptieren/Aufnehmen des verschickten Termins oder trägt ihn gar gleich voreilig in einen Kalender ein. Es kann aber auch je nach MUA gar nix geschehen)

Wenn man das Medium eMail auch nur bisserl ausreizt, kann die Diskrepanz zwischen dem, was eigentlich versendet werden soll und dem, was beim Empfänger ankommt, häßlich hoch sein. Zudem ist das Medium Dank Spam und dem ganzen Phishing-Dreck auch einigermaßen "überreizt", d.h. ich würde nicht davon ausgehen, dass wenn irgendwas Seltsames im Mail-Client eines Users ankommt, der da überhaupt nachdenkt und den Absender informiert. Die Mail wird gelöscht und fertig.

Du kannst es ja mal ausprobieren. Wenn Du Zugriff auf das Logfile des Webservers hast, kriegst Du ja wenigstens einen Teil der Informationen bzgl. der "Reichweite" des Ganzen.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.