Re : SMTPvoir https://community.jmp.com/t5/Discussions/Bug-or-Feature/mp/673679#M86115 .
Quand cela fonctionne, vous avez une fenêtre de script ouverte tout le temps. En cas d'échec, aucune fenêtre n'est ouverte et JMP utilise un contexte d'évaluation temporaire qui disparaît à la fin du script.
Vous pourriez probablement également contourner le problème avec une boucle à la fin du script qui attend la fin du programme d'exécution avant de permettre au script de se terminer. Cela ne fonctionnera pas si vous prévoyez d'exécuter d'autres JSL ou plates-formes pendant que runprogram fonctionne en arrière-plan, mais à peu près comme ceci :
RP=runprogram(...);
while(1,
// check the message names, there might be another one you need too
if(RP<<CANREAD></CANREAD>
De cette façon, le contexte d'évaluation persistera jusqu'à ce que runprogram soit terminé.
RunProgram context closed - SMTPBonjour à tous,
À partir d’un serveur SMTP, j’essaye d’envoyer des pièces jointes à différentes personnes.
Le script fonctionne correctement.
Le seul problème est que lorsque je rajoute « !// » au début de mon script pour qu’il s’exécute directement, j’obtiens l’erreur suivante :

Voici le script que j’utilise :
//!
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;
);
)
)
);
Merci de votre aide !
Automation and Scripting