Rückrufbitte-Mail im Journal per Button

Such Dir was aus → https://telefonanlagen-salzkotten.de/termin

1 Like

Dein Link geht nicht?

Da hatte ich dicke Finger :rofl: :rofl: :joy: Danke für den Hinweis. Ist angepasst.

Was hat denn Salzkotten mit Lichtenau zu tun? ,-))

Nun, da habe ich mal gewohnt und das sitzt noch so in den Fingern :slight_smile: Könntest Salzkotten auch durch Paderborn ersetzen oder meinen Nachnamen -telefonanlagen und wirst immer auf die gleiche Seite kommen. Aber Lichtenau fehlte noch in meiner Sammlung :wink:

1 Like

@jlorenz hab das mal nach deiner Anleitung getestet und klappt natürlich nicht :frowning:
es liegt daran: ${name} ${number} damit kommt der fehler ?
image

in der ISE klappt es:

WARUM nochmals wird DAS nicht mehr unterstützt ??? weil zu einfach ist und funktioniert :slight_smile: ? oder warum ?

DANKE !

Hallo @Tele-crew,

wie auch im Summit erwähnt, würde ich den Client mit Logging starten und schauen welche Fehlermeldung der Aufruf genau produziert. Das ist meistens schon recht hilfreich. Siehe auch: Pascom Client mehrfach starten und Logs auslesen - #2 und gucken was die Powershell zum Skript sagt.

Evtl. kann es schon helfen, in den Parametern ganz vorne noch -File zu ergänzen und die Parameter selber zu quoten, also etwa so:

-File "D:\foo\bar.ps1" "${name} ${number}"

mailto unterstützen wir nicht mehr, weil es eben nicht sauber funktioniert hat, und deshalb auch Supportanfragen entstanden sind - was zur jetzt strikteren Validierung geführt hat.

Grüße,
Jan

servus
also MailTo klappt bei uns seit Jahren OHNE Probleme hmm
das Script klappt so:
image

aber wie kann ich nun aus der Nummer die Internationale Vorwahl gegen “0” tauschen (0991… )
danke :=)

Ich denke, dass ist ein Kapazitäts-Problem für Pascom. Entwickler-Skills zu vermitteln kann und sollte nicht deren Aufgabe sein. Die Energie ist denke ich besser in Produktentwicklung aufgehoben.

Tip: Substring() könnte Dir im Skript behilflich sein wenn Du einfach nur Ziffern entfernen willst.

Für das Ersetzen gibt es die Replace-Funktion, die sich prima mit regulären Ausdrücken kombinieren lässt, um sowohl 0049 als auch +49 zu ersetzen. Nachfolgend mal ein ungetestetes Beispiel.

$newNumber = $number -replace '^(0049|\+49)', '0'

Ist aber auch nur die halbe Miete, weil z.B. 00351 auch eine gültige internationale Vorwahl ist ebenso wie 001. Hier müsste man also noch viel mehr tun, wenn es immer funktionieren soll. Am Ende ist es aber doch nur Kosmetik, denn ob da 0049991 oder 0991 steht, spielt vermutlich keine wirkliche Rolle. Also viel Aufwand für wenig Nutzen?!

1 Like

Hallo Jan,

wäre es möglich, noch zu ergänzen, wie man die Labels und ggf. Datum und Uhrzeit mit “anspricht”? Die Übergabe von ${label} funktioniert nicht und ich weiß nicht, woher ich die Information für die Parameter bekomme…

Besten Dank für einen kurzen Tipp.

Gruß, Silke

Die interne Bezeichnung der Label kannst Du in den Labeln nachsehen.

Somit einfach ${MDC_LABEL-xx} hinzufügen wobei xx die Nummer ist, die bei Anlage des Labels automatisch vergeben wurde.

Ob Datum / Uhrzeit als ${date} zur Verfügung steht, muss Jan Dir beantworten.

1 Like

Hier einmal zwei sendmail die wie einsetzten

Je nach Windows-Einstellungen (UTF-8 Global aktiviert oder nicht) ist es am besten, das Skript ISO-8859-1 enkodiert abzuspeichern

Ansonsten kann es bei Umlauten zu Enkodierungsfehlern kommen

Inhalt und Betreff der E-Mail

$subject = “Rückrufbitte {0} / Telefonnotiz”

E-Mail-Body mit zusätzlichem Infoblock

$body = @"
Telefonnummer: {1}
Anrufer/-in:
Datum: {2}
Anliegen:

☐ Hat zurückgerufen
☐ Bittet um Rückruf
☐ Ruft wieder an
☐ Wünscht Termin
☐ Dringend/ Eilt
☐ Zur Info
☐ Kein Rückruf nötig
"@

Datum ermitteln

$date = Get-Date -Format “dd.MM.yyyy”

Name und Nummer aus den Skript-Parametern abholen

$name = $args[0]
$number = $args[1]

Platzhalter ersetzen

$body = $body -f $name, $number, $date
$subject = $subject -f $name, $number

Nummer ins internationale Format bringen (+49 statt führender 0)

if ($number -match ‘^00\d+’) {
$number = ‘+49’ + $number.Substring(1)
}

Manche E-Mail Clients wollen URL-Enkodierung für die Leerzeichen. In diesem Fall diesen Block einkommentieren

Add-Type -AssemblyName System.Web
$subject = [System.Web.HttpUtility]::UrlEncode($subject) -replace ‘+’, ‘%20’
$body = [System.Web.HttpUtility]::UrlEncode($body) -replace ‘+’, ‘%20’

Finalen Link generieren

$link = “mailto:${recipient}?subject=${subject}&body=${body}”

E-Mail Client starten

Start-Process $link

und einmal als html email in schön

Parameter: Name, Telefonnummer

param (
[string]$name = $args[0],
[string]$number = $args[1]
)

Datum generieren

$date = Get-Date -Format “dd.MM.yyyy”

HTML-Body mit echten Checkboxen

$htmlBody = @"

body { font-family: Arial, sans-serif; } label { display: block; margin-bottom: 5px; }

📞 Telefonnotiz

👤 Anrufer/-in: $name

📅 Datum: $date

📱 Telefonnummer: $number

📝 Anliegen:

Hat zurückgerufen Bittet um Rückruf Ruft wieder an Wünscht Termin Dringend / Eilt</div Zur Info</div Kein Rückruf nötig</div "@

Outlook starten

$outlook = New-Object -ComObject Outlook.Application
$mail = $outlook.CreateItem(0) # 0 = MailItem

Mail konfigurieren

$mail.Subject = “Telefonnotiz – Rückruf $name”
$mail.To = “*stb-letmathe-trasser.de” # Anpassen!
$mail.HTMLBody = $htmlBody

Öffnet die Mail zum manuellen Bearbeiten oder Absenden

$mail.Display()

1 Like

Hi,
mit normalen Labels klappt es, mit AI Labels leider nicht.
Hat da jemand eine Idee?

Gruß Daniel

servus zusammen, ich muß hier leider noch mal was dazu schreiben!!

lt Anleitung Rückrufbitte aus Journaleintrag via E-Mail versenden - HowTos - pascom Forum soll ja ein script erstellt und ausgeführt werden, das PROBLEM Dabei ist aber, das sich das Script NUR ausführen lässt, wenn ich am PC die SICHERHEIT herunter stelle :frowning: und den Befehl Set-ExecutionPolicy Unrestricted ausführe!

nun hab ich den ersten PC, der das Script trotz erlaubnis nicht mehr ausfürhrt (wohl seit gestern, evtl aufgrund des KB5079473 ?!)

der PC meldet seit gestern den fehler:

.\sendmail.ps1 : Die Datei “C:\pascom-aktiontasten\sendmail.ps1” kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist. Weitere

Informationen finden Sie unter “about_Execution_Policies” (https:/go.microsoft.com/fwlink/?LinkID=135170).

In Zeile:1 Zeichen:1

  • .\sendmail.ps1

  • ~~~~~~~~~~~~~~

    • CategoryInfo : Sicherheitsfehler: (:slight_smile: [], PSSecurityException

    • FullyQualifiedErrorId : UnauthorizedAccess

auf JEDENFALLS find ich es nicht gut, das pascom von der mail-to variante auf script umgestellt hat und wollte fragen ob es denn noch andere möglichkeiten gäbe ?

ps: das sagt der MS Copilot dazu:

Hier steckt mehr Sprengkraft drin, als viele denken. Set-ExecutionPolicy Unrestricted ist einer der riskantesten PowerShell‑Befehle, weil er eine zentrale Sicherheitsbarriere entfernt. Ich zeige dir kompakt, aber fundiert, was genau passiert und warum man das in produktiven oder sicherheitskritischen Umgebungen praktisch nie tun sollte.

Bin ich der EINZIGSTE dem die sicherheit seiner Kunden am Herzen liegt ?? :slight_smile:

@Tele-crew,

in der seit kurzem verfügbaren v120 Beta des Clients gibt es dafür nun einen eigenen Knopf. Magst du das einfach mal testen?

Grüße,
Jan

1 Like

das PROBLEM Dabei ist aber, das sich das Script NUR ausführen lässt, wenn ich am PC die SICHERHEIT herunter stelle

Imo musst Du nicht allgemein die ExecutionPolicy des ganzen Systems heruntersetzen. Es müsste reichen, wenn Du bei Scriptaufruf den Parameter -ExecutionPolicy Bypass setzt. Dann änderst Du die Policy nur für den einen Prozess, der bei Aufruf gestartet wird.

Also bzgl. dem verlinkten HowTo bei dem Punkt “Parameter” -File C:/Users/username/Desktop/sendmail.ps1 "${name} ${number}" das obige ergänzen:

-ExecutionPolicy Bypass -File C:/Users/username/Desktop/sendmail.ps1 "${name} ${number}"

2 Likes

Danke. Ich werde die Beta und den Bypass mal testen. DANKE !!:folded_hands:

kurze info: -ExecutionPolicy Bypass klappt bei mir auf dem PC, bei dem der Probleme macht gehts leider auch nicht (ich hab aber admin rechte, der user natülrich nicht, ich teste das mal noch wo anders)

@jlorenz mit dem Beta klappt es sofort .. DANKE dafür.. aber WO kann ich die Vorlage anpassen? der Kunde hätte das natürlich etwas “schöner” - DANKE

Schade, einen Versuch war es wert. Hier funktioniert es auch ohne Adminrechte. Da scheinen auf dem besagten System (per Gruppenrichtlinie o.ä.) weitere Restriktionen konfiguriert zu sein.

1 Like

Via GPO eine Cert verteilen oder das bisher verteilte Cert nehmen und das Script signieren. Dann sollte die Ausführung auch auf Systeme gehen, ohne erweitere Rechte und ohne zusätzliche Sicherheitsrisiko.

Zum groben Einlesen:
https://www.windowspro.de/wolfgang-sommergut/powershell-scripts-signieren-zertifikaten-einer-ad-zertifizierungsstelle

1 Like