„mailto“ mit Anhängen - meine Lösung (derzeit nur für macOS)
Wie wir alle wissen, kann man aus einer Datenbank heraus nur an Teammitglieder per sendmail() Mails mit Anhängen schicken.
Natürlich kann man auch an andere Mails schicken (openURL()
- mailto:
), doch auf Grund der Spezifikation für das mailto
-Protokoll eben nur ohne Anhänge.
Hier setzt nun meine Lösung an:
Dazu habe ich eine Python-App geschrieben, die durch einen entsprechenden openURL()
-Aufruf aufgerufen wird und die übergebenen Argumente dahingehend verarbeitet, dass Mails mit Anhängen an jedermann verschickt werden können.
Bevor man diese App nutzen kann, müssen erst einige Voraussetzungen erfüllt sein, dazu bitte in Admin-Account einloggen, damit die Installation systemweit erfolgt:
Installation von Python 3 (standardmässig ist unter macOS derzeit nur Python 2 installiert)
Quelle: https://www.python.org/ftp/python/3.7.2/python-3.7.2-macosx10.9.pkg
Terminal öffnen und folgende Schritte ausführen:
- sudo /Applications/Python\ 3.7/Install\ Certificates.command
- sudo pip3 install —upgrade pip
- sudo pip3 install pyobjc
Weiter gehts… ;-)
- Download der App: https://www.icloud.com/iclouddrive/0zrlzns-9EDL_cjZBPAljEAAA#
- Nach dem Entpacken die App in den Programme-Ordner verschieben (oder kopieren)
Nun müssen wir noch eine Konfigurationsdatei anlegen, bei Verwendung von Textedit darauf achten, dass dieses Datei als PLAIN-Text gespeichert wird.
Name: mailtoex.ini
Speicherort: ~/Library/Preferences/
Inhalt:
[DEFAULT]
host=
port=
starttls=1
username=
password=
[EIGENE_MAIL_ADDRESSE_EINTRAGEN]
host=
port=
username=
password=
Den DEFAULT-Abschnitt bitte so lassen, „starttls“ bei Bedarf im eigenen Abschnitt ändern - sollte allerdings heutzutage nicht mehr notwendig sein, da normalerweise alle Mail-Provider mit Verschlüsselung arbeiten (sollten).
Es können mehrer eigene Abschnitte angelegt werden, wenn man mehrere Accounts benutzen will.
Damit steht der Verwendung der App nichts mehr im Wege und ich komme zum Aufbau der URL für den openURL()-Aufruf:
Diese URL muss zwingend mit „mailtoex://MailToEx?“ beginnen, danach kommen die einzelnen Argumente, die Key/Value-Paare werden immer mit dem &-Zeichen verbunden:
from, to, cc, bcc, subject, content, attachment
Darauf achten, dass für die bei from
übergebene Mail-Adresse auch der Abschnitt in der Konfigurationsdatei existiert!
Bis auf attachment
darf jeder Parameter nur einmal vorkommen, im Falle von to
, cc
und bcc
können jeweils mehrere Zieladdressen angegeben werden, die mit Semikolon getrennt werden müssen. Des Weiteren muss ein attachment
-Pfad immer mit file://
beginnen (printAndSaveRecord()
gibt den Pfad auch genauso zurück)!
Da die Mails immer als HTML gesendet werden, wird für Zeilenumbrüche <br>
benötigt.
Nun noch ein Codebeispiel für das Zusammensetzen der URL:
From := "pgaede.office@gmail.com";
To := "test@testing.com;test2@testing.com";
Cc := "test_cc@testing.com";
Bcc := "test_bcc@testing.com";
Subject := "Das ist nur ein Test";
Content := "Hallo,<br><br>das ist wirklich nur ein Test, und ich weiß nicht einmal, ob dieses Adressen existieren.<br><br>Gruß, der
Tester";
Attachment1 := printAndSaveRecord(myRecord1, "Layout1");
Attachment2 := printAndSaveRecord(myRecord2, "Layout2");
myURL := "mailto://MailtoEx?from=" + From + "&to=" + To + "&cc=" + Cc + "&bcc=" + Bcc + "&subject=" + Subject + "&content=" + Content + "&attachment=" + Attachment1 + "&attachment=" + Attachment2;
openURL(myURL)
Meine App kann sowohl aus der Desktop-Anwendung als auch aus der Web-Anwendung heraus aufgerufen werden.
Falls noch Fragen auftauchen, bitte in diesem Thread stellen. ;-)
8 Antworten
-
Klasse, fast alle Leerzeilen sind verschwunden - wozu hab ich es hier im Editor dann eigentlich formatiert? :(
Also sorry dafür, aber ich denke, man kann es trotzdem noch verstehen...
-
Nachtrag (Editieren geht ja nicht) - Kleiner Schreibfehler:
Falsch:
Diese URL muss zwingend mit „mailtoex://MailToEx?“ beginnen, danach kommen die einzelnen Argumente, die Key/Value-Paare werden immer mit dem &-Zeichen verbunden:
Richtig:
Diese URL muss zwingend mit „mailtoex://MailtoEx?“ beginnen, danach kommen die einzelnen Argumente, die Key/Value-Paare werden immer mit dem &-Zeichen verbunden:
-
Hallo Peter,
hab mich grade total gefreut, diese Anleitung gefunden zu haben und hab auch gleich losgelegt... allerdings geht der iCloud Link nicht mehr. Könntest du die Datei nochmal bereitstellen? Wäre total genial, wenn das funktionieren würde...
Viele Grüße
Dominic
-
Hallo Peter,
mit senmail kannst du schon an andere empfänger schicken nur die absender können nur die adressen die im team sind. Aber deine Lösung klingt jedenfalls sehr intressant, da sendmail nicht zuverlässig genug ist, landet oft auf der black list. könntest du das mal im API webinar vorstellen?
LG Basti
-
Hallo,
hat sich hier jemand einmal Gedanken gemacht, ob eine ähnliche Variante evtl. auch mit AppleScript oder Automator realisierbar wäre?
Gruß
OttoGeorg
-
Leider funktioniert der iCloud link nicht, könntest du ihn nochmals bereitstellen wäre toll wenn ich anhänge mit versenden könnte über ninox
-
Hallo Peter, könntest du mal den Link der APP freigeben?
Gruß
René
-
Hallo Peter ,
ist zwar eine weile her, aber könntest du einen link für deine App posten oder die App zukommen lassen?
Vielen Dank und viele Grüße
Jürgen
Content aside
- vor 6 MonatenZuletzt aktiv
- 8Antworten
- 2964Ansichten
-
1
Folge bereits