Ri: SMTPVedere https://community.jmp.com/t5/Discussions/Bug-or-Feature/mp/673679#M86115 .
Quando funziona, hai una finestra di script aperta tutto il tempo. Quando fallisce, nessuna finestra è aperta e JMP utilizza un contesto di valutazione temporaneo che scompare alla fine dello script.
Probabilmente potresti anche risolvere il problema con un ciclo alla fine dello script che attende il completamento del programma di esecuzione prima di consentire il completamento dello script. Ciò non funzionerà se prevedi di eseguire altri JSL o piattaforme mentre runprogram funziona in background, ma più o meno in questo modo:
RP=runprogram(...);
while(1,
// check the message names, there might be another one you need too
if(RP<<CANREAD></CANREAD>
In questo modo il contesto di valutazione persisterà fino al completamento del programma di esecuzione.
Contesto RunProgram chiuso - SMTPBuongiorno a tutti,
Da un server SMTP sto cercando di inviare allegati a persone diverse.
Lo script funziona correttamente.
L'unico problema è che quando aggiungo "!//" all'inizio del mio script in modo che venga eseguito direttamente, ottengo il seguente errore:

Ecco lo script che utilizzo:
//!
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;
);
)
)
);
Grazie per l'aiuto !
Automazione e scripting