Seite 1 von 1
Geniale Software... seit Jahren top, aber....
Verfasst: Fr 19. Mai 2023, 18:31
von markus1975
Zu aller erst ein dickes Lob an das ganze Team von MPE, eine wirklich tolle Software.
Ich hätte dennoch eine Frage... Gibt es eine Möglichkeit von einem Webserver eine SMS via MPE versenden zu lassen, wenn das Handy im W-Lan ist ?
Es gibt zwar SMS Gateways, aber die sind zu teuer, und als gemeinnütziger Verein wollen wir die Kosten so tief wie Möglich halten.
Mit freundlichem Gruss
Markus Breitenstein
Verfasst: Do 1. Jun 2023, 21:45
von FJ
Diese Funktion ist bereits via Kommandozeile realisiert, näheres dazu hier:
https://www.fjsoft.at/forum/viewtopic.php?t=373
Verfasst: Di 6. Jun 2023, 22:52
von smm01
Hemmm...mmmmhhhh...
Ich will zwar kein SMS-Gateway bauen, aber da ich das mit den Event-Handlern schon mal neugierigerweise gelesen habe, würde ich es auch gerne verstehen. Und da hakt's gerade...
Ich lese also an der oben genannten Stelle dieses (verkürzt)
Code: Alles auswählen
[EventHandlers]
OnIncomingMessage (%number|%text|%pdu|%user)
Ich verstehe das so, dass der Handler anspricht, wenn eine SMS ("Message") eingeht von einer best. Telefonnummer ("%number").
Aber was passiert dann bzw. wie schreibt man die Aktion hin?
Das hab' ich nicht herausgefunden.
Wie geht???
Verfasst: Mi 21. Jun 2023, 18:20
von FJ
Hier ein Beispiel:
Code: Alles auswählen
[EventHandlers]
OnIncomingMessage=C:\meinScript.vbs number=%number text=%text
MyPhoneExplorer wird bei einer eingehenden Nachricht die Datei meinScript.vbs mit dem angegebenen Kommandozeilenparametern aufrufen. Die Variablen %number und %text wird er mit den Daten aus der SMS ersetzen.
Und hier ein Beispiel der testScript.vbs:
Code: Alles auswählen
Dim i, text, number, tmp, outtext, textfile
Dim objFSO, objTextFile
textfile = "test.txt"
'Daten aus der Kommandozeile rausfiltern...
For i = 0 to WScript.Arguments.Count - 1
tmp = WScript.Arguments.Item(i)
If Instr(1, LCase(tmp), "number=") = 1 Then
number = Mid(tmp,8)
ElseIf Instr(1, LCase(tmp), "text=") = 1 Then
text = Mid(tmp,6)
End If
Next
'MPE wird die Nummer u.U. mit dem Namen übergeben ("Name [0123456789]"), also rausschneiden
If Instr(1,number,"[") <> 0 Then
number = Mid(number, InstrRev(number,"[") + 1)
If Instr(1, number, "]") <> 0 Then
number = Left(number, Instr(1, number, "]") - 1)
End If
End If
'Msgbox "Text=" & text & vbNewLine & "Number=" & number 'nur eine Meldung zum Testen...
If True = True Then 'Hier kann ein Filter gesetzt werden, Beispiel: If number = "12345" Then , oder nur wenn folgendes Wort im Text vorkommt: If InStr(1,text,"TestText") <> 0 Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(textfile, 2, True)
objTextFile.WriteLine(Now & " " & number & ": " & text) 'Die Daten werden in die Textdatei geschrieben
objTextFile.Close
End If
Diese Scriptdatei würde z.B.: die eingehenden Nachrichten in die Datei test.txt reinschreiben
Verfasst: Fr 23. Jun 2023, 23:27
von smm01
FJ hat geschrieben:Hier ein Beispiel:
Code: Alles auswählen
[EventHandlers]
OnIncomingMessage=C:\meinScript.vbs number=%number text=%text
A-haaaa!
So leuchtet mir das unmittelbar ein.
FJ hat geschrieben:Und hier ein Beispiel der testScript.vbs:
Ok, klar... wenn das oben ist wie es ist, muss das hier so sein wie das hier halt ist. Genau!
Auf jeden Fall DANKE, nun hab' ich's verstanden.
