Hallo,
ich möchte aus Ragtime eine Mail erzeugen, in der ein Absatz des Textes kursiv und fett dargestellt wird.
Mit welcher Funktion kann man dies erreichen?
Besten Dank.
Viele Grüße Hans-Jörg
Das wird nicht gehen. Ich kann in RagTime z.B. eine Verknüpfung erzeugen, die dann eine Mail schreibt. Die URL dazu wäre dann
mailto:m.mustermann@domain.de?subject=Hier%20steht%20der%20Betreff&body=Hallo,%0D%0A%0D%0Ahier%20_steht_%20die%20Nachricht.
oder auch per AppleScript
set theLink to "mailto:m.mustermann@domain.de?subject=Hier%20steht%20der%20Betreff&body=Hallo,%0D%0A%0D%0Ahier%20_steht_%20die%20Nachricht."
open location theLink
Wichtig ist hierbei, dass das Format der URL abhängig vom Mail-Client ist. Diese Variante geht mit Apple Mail und Thunderbird. Wie es mit anderen Programmen aussieht kann ich nicht sagen, da werden wohl Änderungen fällig.
Wichtig ist hier das "%"-Escape von Sonderzeichen inkl. Leerzeichen, also %20 = Leerzeichen %0D%0A = Neue Zeile usw.
Nur kann man auf diese Art keine Formatierung erreichen. Dazu wäre dann ein vom Mailprogramme abhängiges bearbeiten der Mail nötig.
Alternativ könnte man sicherlich Texte aus RagTime nehmen und direkt ohne den Link eine neue Mail via AppleScript erzeugen. Dazu findet man einiges via Internet suche nach "Applescript create formatted mail".
Thomas Eckert RagTime Support
Ich wollte das über AppleScript programmieren. Das Mail-Script hierzu läuft bereits problemlos.
Eine scheinbar sehr einfache Lösung könnte man vielleicht mit den escape sequences erreichen. So kann man z.B. mit "\n" eine neue Zeile erstellen. Mit "\e[3m" kann man kursiv einstellen. Leider gibts da aber mit AppleScript eine Fehlermeldung. Wird also so nicht unterstützt.
Und wie wäre es mit "normalen" Zeichen? Man könnte ja Zeichen wie "#" oder "_" in den Text einbauen, die dann im Mail-Skript gesucht werden und dann der Text kursiv oder fett gesetzt wird. Die Escape-Zeichen sind wohl eher für die Shell…
Ich hab's nun!
Mein AppleScript ist noch nicht in RagTime eingebaut. Es wird noch vom Skript-Editor aus gestartet.
Dann ruft es RagTime auf und kopiert dort den vorbereiteten Text mit Auszeichnungen (schräg/italic, fett/bold, Textgröße, Font, Textfarbe). Dann erzeugt es in Mail.app ein neues E-Mail und geht in den Textbereich/Body. Dort fügt es den vorher kopierten Text ein. Er sieht so aus wie vorher in RagTime.
Was will man mehr? Ich will nicht verschweigen: Es wird GUI-Scripting verwendet. Besteht noch Interesse? Ich lade dann Musterdateien und Skript mit hoch.
RagTime, FileTime, FileMaker, AppleScript, Spell Catcher X, Zeichenmaschine, SVG und der Arc FritzSchreiber geben Flügel.
Mit freundlichen Grüßen, Norbert Lindenthal
Hallo Norbert,
danke für Deine Tests. Das klingt sehr gut. Hab versucht es in meinem Script einzubauen. Es wird jedoch keine Formatierung aus der Zelle übernommen. Mein Script wird über einen Button aus Ragtime gestartet.
Kannst Du das Script hochladen? Mit GUI-Scripting habe ich mich noch nicht beschäftigt.
Viele Grüße Hans-Jörg Steffes
Moin, Hans-Jörg,
hier mein AppleScript:
tell application "RagTime 6.5" activate select text of contents of text flow "Text 1" of document 1 tell application "System Events" keystroke "c" using {command down} -- Text: Auswahl in Zwischenablage kopieren end tell end tell tell application "Mail" activate set meinEmail to (make outgoing message) -- set content of meinEmail to the clipboard -- Auszeichnungen gehen verloren tell application "System Events" key code 48 -- weiter vom Kopf bis zum "content" key code 48 -- weiter vom Kopf bis zum "content" key code 48 -- weiter vom Kopf bis zum "content" keystroke "v" using {command down} -- einsetzen aus der ZA mit Auszeichnung end tell end tell
Ein neues RT-Layout mit Deinem Text mit schrägem Text (oder farbigem, fettem, großem, mit besonderer Schrift) kannst Du Dir selber erzeugen. Du mußt dann ja noch etwas abwandeln, damit der E-Mail-Text aus Deiner Rechenblattzelle kommen kann.
funktioniert im Prinzip genau wie es soll - die kursive Formatierung bekommt man gut hin. Allerdings springt das Script mit den Key Codes per Tab zwar in das Text-Feld der Mail, allerdings kann man so nicht steuern, daß der neue Text sich an den bestehenden hinten anfügt. Wenn man den content per Script setzt, wird der bisherige Inhalt komplett überschrieben.
Ich werde versuchen was anderes zu probieren - leider fehlt mir Basiswissen zu Apple Script.
Deinen endgültigen E-Mail-Text könntest Du woanders, also vorher in RagTime, zusammenrechnen.
Die direkte Lösung ist ein Einzeiler:
set font of paragraph zeile_kursiv to "Helvetica Oblique"
Deinen "Einzeiler" wendest Du innerhalb RagTime oder in Mail.app an? Wenn Du die ganze Lösung nun hast, könntest Du sie mal ganz hier posten?
das Script wird aus Ragtime per Knopf gestartet und gibt die Werte an Mail weiter. Der Mail-Teil sieht so aus:
tell application "Mail" activate
set MeinLokalerPfad to "System:users:tibook:" set mypath to "System:Anhang.pdf" set subj to "Betreff" set body to "Inhalt\n\n\nText fett & kursiv" set receiver to "Empfänger" set logo_zeile to 10 set zeile_fett to 4
set theSignature to first item of (signatures where (name of it) = "E-Mail-Exporter") set iCloudLogo to "Library:Mobile Documents:com~apple~CloudDocs:Ragtime-Server:Logo-Mail-Signatur.png" set iCloudLogo to MeinLokalerPfad & iCloudLogo
set theMessage to make new outgoing message ¬ with properties {visible:true, subject:subj, content:body}
tell theMessage make new to recipient at end of to recipients ¬ with properties {address:receiver}
set message signature to theSignature make new attachment with properties {file name:iCloudLogo as alias} ¬ at after paragraph logo_zeile --- Signatur-Logo make new attachment with properties {file name:mypath as alias} ¬ at after last paragraph --- ANHANG
set font of paragraph zeile_fett to "Helvetica Bold Oblique"
end tell end tell
tell application "Mail" make outgoing message end tell
Moin, Hans_Jörg,
das wäre mal ein Anfang. Im AppleScript-Befehlsverzeichnis für Mail.app siehst Du weitergehende Befehle zum Ausfüllen vom Empfänger und so weiter.