Betreff: SMTPsehen https://community.jmp.com/t5/Discussions/Bug-or-Feature/mp/673679#M86115 .
Wenn es funktioniert, ist die ganze Zeit über ein Skriptfenster geöffnet. Wenn dies fehlschlägt, ist kein Fenster geöffnet und JMP verwendet einen temporären Auswertungskontext, der am Ende des Skripts verschwindet.
Sie könnten das Problem wahrscheinlich auch mit einer Schleife am Ende des Skripts umgehen, die auf den Abschluss des Ausführungsprogramms wartet, bevor sie den Abschluss des Skripts zulässt. Das funktioniert nicht, wenn Sie andere JSLs oder Plattformen ausführen möchten, während runprogram im Hintergrund arbeitet, aber ungefähr so:
RP=runprogram(...);
while(1,
// check the message names, there might be another one you need too
if(RP<<CANREAD></CANREAD>
Auf diese Weise bleibt der Auswertungskontext bestehen, bis das Programm ausgeführt wird.
RunProgram-Kontext geschlossen – SMTPHallo zusammen,
Von einem SMTP-Server aus versuche ich, Anhänge an verschiedene Personen zu senden.
Das Skript funktioniert korrekt.
Das einzige Problem besteht darin, dass ich die folgende Fehlermeldung erhalte, wenn ich am Anfang meines Skripts „!//“ hinzufüge, damit es direkt ausgeführt wird:

Hier ist das Skript, das ich verwende:
//!
Names Default To Here( 1 );
// modifier le type de codage dans le PowerShell (windows)
stringCommand = "$OutputEncoding = [System.Text.Encoding]::UTF8";
// paramètres du mail à envoyer
commands = {
"Send-MailMessage -From '... -To '...' -Subject 'test' -Body 'test' -SmtpServer... -Attachment 'test...'",
"exit\!n"
};
// script exécution PowerShell
icommand = 0;
RP = Run Program(
Executable( "PowerShell.exe", stringCommand, ShowWindow("Hide") ),
ReadFunction( Function( {this}, Write( this << Read ) ) ),
WriteFunction(
Function( {this},
icommand++;
If( icommand <= N Items( commands ),
this << Write( commands[icommand] );
,
this << WriteEOF;
);
)
)
);
Ich danke Ihnen für Ihre Hilfe !
Automatisierung und Skripterstellung