Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Applescript: Nutzung von Mail terms in anderen programmen

Applescript: Nutzung von Mail terms in anderen programmen

was
was27.07.0723:08
Folgendes Szenario:

Ich benötige ein Applescript, welches subject und content an ein anderes Programm ( Bluephoneelite ) sendet und dieses dann daraus eine neues SMS erstellt. Subject agiert bei dieser SMS dann als Empfänger und content als SMS inhalt.
Danach soll die EMAIL aus Mail gelöscht werden.
Das Script hab ich soweit, dass ich damit über BPE SMS versenden kann jedoch nur wenn ich die nummer und den content selbst eintrage.

Ich benötige also den Inhalt aus MAIL (Subject und Content) in BPE.

Weiss jemand wie ich aus der letzt empfangenen Email diese beiden Daten in BPE bekomme

Kann mir dabei jemand helfen.. das wäre toll.

Möchte einen email2sms gateway/server einrichten..

lg.david
0

Kommentare

_mäuschen
_mäuschen29.07.0712:27

Ich habe kein mobile und habe auch BPE nicht freigeschaltet, aber

dieser script soll Dir mit dem BPE example eine Möglichkeit aufzeigen.

Überprüfung der phone number auf gültigen syntax und maximal character für die Message etc. müssten noch eingebaut werden.


-- die box mit den e-mail zum smsen
set the TheMailbox to "Inbox"
tell application "Mail"
tell application "System Events" to tell process "Mail"
select (first row of outline 1 of scroll area 1 of window 1 ¬
whose value of static text 1 is TheMailbox)
end tell
set messageList to {}
get message viewer 1's selected mailboxes
repeat with thisBox in result
set messageList to messageList & (messages of thisBox whose read status is false)
end repeat
if length of messageList is not 0 then
repeat with thisMessage in messageList
set curSubject to subject of thisMessage
set curContent to content of thisMessage
my sendTheMessage(curSubject, curContent)
set read status of thisMessage to true
-- delete thisMessage
end repeat
end if
end tell

on sendTheMessage(theRecipient, theSMSText)
------------------------------------------------
-- ABOUT send-sms.scpt
------------------------------------------------
-- Example script. Sends an SMS to the recipient using the first device it can find.

------------------------------------------------
-- REQUIREMENTS
------------------------------------------------
-- A device in BPE2 with a running Text Message service.

------------------------------------------------
-- PROPERTIES
------------------------------------------------
-- theRecipient : A phonebook string. Valid formats are "phonenumber" or "name <phonenumber>".
--property theRecipient : "212-555-1212"

-- theSMSText : Text of the SMS.
--property theSMSText : "This message was sent from BPE2 using AppleScript!"


------------------------------------------------
-- EXAMPLE CODE
------------------------------------------------

tell application "BluePhoneElite 2"
-- create the message
set newMessage to make new «class mesg» with properties {«class bTo »:theRecipient, «class conT»:theSMSText}
-- send using any device
-- devices can also be specified by name or bluetooth address
«event bpe2send» newMessage given «class use »:the first «class dev »
end tell
end sendTheMessage

0
_mäuschen
_mäuschen29.07.0716:30

Hast Du es als Programm gespeichert?

0
_mäuschen
_mäuschen31.07.0711:29

Dieser hier geht mit BPE Version 1
(BPE2 kann ich nicht testen, da kein Freischalte-Code)


set the TheMailbox to "Inbox"
set CR to ASCII character 13
set LF to ASCII character 10
set numb to {"+"}
set CharLimit to 200

repeat with n from 0 to 9
copy n as string to the end of numb
end repeat

set the TheMailbox to "Inbox"
tell application "Mail"
tell application "System Events" to tell process "Mail"
select (first row of outline 1 of scroll area 1 of window 1 ¬
whose value of static text 1 is TheMailbox)
end tell
set messageList to {}
get message viewer 1's selected mailboxes
repeat with thisBox in result
set messageList to messageList & (messages of thisBox whose read status is false)
end repeat
if length of messageList is not 0 then
repeat with thisMessage in messageList
set corNumb to ""
set newContent to ""
-- set message viewer 1's selected messages to {(messageList's last item)}
-- strip blanks and characters
set curSubject to subject of thisMessage
repeat with newNumb in curSubject
if newNumb is in numb then ¬
set corNumb to corNumb & newNumb
end repeat
-- replace line feed with carriage return
set curContent to content of thisMessage
set newContent to my findAndReplace(LF, CR, curContent)
if (count of characters in newContent) is greater than CharLimit then ¬
set newContent to text 1 through CharLimit of newContent
-- send using BluePhoneElite 1
my sendTheMessage(corNumb, newContent)
--set read status of thisMessage to true
-- delete thisMessage
end repeat
end if
end tell

on sendTheMessage(theRecipient, theSMSText)
tell application "BluePhoneElite"
activate
tell application "System Events"
keystroke "n" using (command down & shift down) --New SMS message
keystroke theRecipient as string -- Type the number
delay 1
keystroke tab
keystroke theSMSText --enter text in textfield
delay 1
keystroke "d" using (command down & shift down) -- send it!
end tell
end tell
end sendTheMessage

-- Nigel Garvey's find/replace handler
-- returns class of original.
on findAndReplace(toFind, replaceWith, theText)
set ASTID to AppleScript's text item delimiters
set AppleScript's text item delimiters to toFind
set textItems to theText's text items
set AppleScript's text item delimiters to replaceWith
tell textItems to set editedText to beginning & replaceWith & rest
set AppleScript's text item delimiters to ASTID
return editedText
end findAndReplace

0
was
was31.07.0721:10
Hab das letzte Skript von dir folgendermaßen verwendet:

Ich habe bei Mail auf dem server eine Mailbox. Dann habe ich als regel eingestellt dass bei allen emails die kommen folgender applescript ausgeführt werden soll: und dann habe ich dein skript entweder als app oder skript angegeben.
dann habe ich von meinem macbook und einem anderen email account eine email geschrieben an den account, welcher auf dem server eingerichtet war.
unterdessen ist der server mit dem handy(siemens sk65) über BPE1 verbunden. diese verbindung funktioniert einwandfrei und das manuelle versenden von sms geht auch.

nachdem absenden der sms vom macbook zum server ( betreff war entweder: 0163..... oder +46163... ) kommt diese auch beim server natürlich an. jedoch bei BPE tut sich überhaupt gar nichts... ich kann keinerlei reaktion festellen

mach ich was falsch
0
_mäuschen
_mäuschen31.07.0721:32

Weiss nicht.

Bei mir passiert folgendes (wie schon gesagt, hab kein mobile) auf dem Mac.

Du sagst was von Server. Was läuft denn da?
0
was
was31.07.0721:40
also mit server meine ich mein ausrangiertes ibookG4

dieses ist per bluetooth an das siemens SK65 verbunden.
es läuft BluePhoneElite 1

Dazu ganz normal Mail mit einem account bei freenet

sonst eigentlich nichts besonderes apple remote halt und so n spass..

versteh das nicht hab leider nur dsl1000 zZ hier sonst würd ich dir nen apple remote client installer schicken und du könntest nachschauen wo dran es liegt! ich versuche weiter!!!
0
was
was31.07.0721:41
es scheint so als ob der applescript überhaupt nicht auslösen würde... und wenn ich ihn so starte kommt der fehler wie oben schon erfähnt...


NSReceiverEvaluationScriptError: 4

habe das skript so wie du es gepostet hast im skript-editor als programm auf dem desktop mit dem namen mail2sms.app gespeichert..
0
_mäuschen
_mäuschen31.07.0721:53

Ja, ARD Zugangsdaten wie IP &gastpass an mich
0
was
was31.07.0722:20
schick dir alles per mail...
0
was
was31.07.0722:21
an deinen ichat adresse...
0
_mäuschen
_mäuschen31.07.0722:28

Nein, benutze den Flieger;-)

0
_mäuschen
_mäuschen31.07.0722:30
thx
0
was
was31.07.0722:31
email ist raus... hoffe das funktioniert...

hab die ports geNATet beim router...
0
was
was31.07.0722:47
es funktioniert! mäuschen hat es über ard zum laufen grbacht undzwar war der fehler recht banal und ich schäme mich auch ein wenig

Der Zugriff auf Hilfsgeräte unter Systemeinstellungen Bedienungshilfen war nicht aktiviert


danke nochmal!
0
was
was31.07.0723:03
hmm ich weiss es hört sich doof an aber so richtig will es noch nicht und zwar hängt es an folgendem:

das skript funktioniert einwandfrei. jedoch weigert sich mail dass script automatisch beim eingang von neuen email auszuführen obwohl die kriterien stimmen ( bei allen emails )


0
_mäuschen
_mäuschen31.07.0723:21

Ev. habe ich übersehen wie Deine Inbox wirklich heisst.

Eventuell doch @@set the TheMailbox to "Eingang"

und sorry, diese Zeile ist zwei mal im script.
Einfach eine davon löschen und die andere umbenamsen

0
was
was31.07.0723:51
hm nein das war nicht der fehler hab alles in mail zu Eingang benannt und im script alle Mailboxes zu Eingang... immer noch tot.. führe ich das skript manuell aus sendet er die sms wie eben in ard
0
_mäuschen
_mäuschen01.08.0700:21

Was passiert nach Alt-Cmd-L (Regeln anwenden),
wenn eine Mail ungelesen ist?

0
_mäuschen
_mäuschen01.08.0714:47

Ich send Dir einen neuen script

0
was
was29.07.0716:18
wow hallo und schonmal danke für deine mühe.
ich habe jetzt auf meinem server ( altes ibook g4 ) bei mail eine regel erstellt die dein applescript startet wenn eine email eingeht.

leider tut sich beim empfang einer neuen email noch nichts und ich weiß auch nicht recht wieso nicht.. beim nüchternen ausführen des applescripts im editor kommt folgender error:

„System Events“ hat einen Fehler erhalten: NSReceiverEvaluationScriptError: 4

wobei dass ja nicht viel zu sagen hat es kommt einfach gar nix bei BPE an
0
was
was30.07.0705:29
als applescript..?! soll ich als programm?!?! muss morgen testen wenn ich wieder zu hause bin!
0
was
was31.07.0700:42
auch als programm keinerlei reaktion
0
was
was01.08.0700:52
wenn ich die tastenkombination nutze sendet er die sms..
0
was
was01.08.0716:29
ich werde es testen wenn ich wieder zu hause bin danke aber schonmal!!
0

Kommentieren

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