Question Script Mail

Plus d'informations
il y a 15 ans 2 semaines #4516 par physyo
Script Mail a été créé par physyo
Bonjour tous le monde.

Y a un truc que je comprend pas. Le script suivant marche sur mon PC pour faire les tests mais il ne marche pas sur le PC en prod.


[code:1]$login= \"*******\"
$mdp= \"********\"
$obj = New-Object -com Wscript.Network
$obj.MapNetworkDrive(\"f:\", '\\192.168.1.1\partage', \"False\", $login, $mdp)
$mail_csv = \"c:\email.csv\"
$folder = \"f:\test.txt\"
$file = Get-Content $folder | where {$_ -match \"ok\"}
$date = Get-Date
$content = Get-Content $folder
if ($file -eq \"ok\"«»)
{
Write-Host \"fichier ok\"
}
else
{
$listemail = import-Csv $mail_csv

foreach($sendmail in $listemail)
{
$email = $sendmail.email
$emailFrom = \"mon@domain.fr\"
$emailTo = $email
$subject = \"Objet $date\"
$body = \"Plantage du traitement $content\"
$smtpServer = \"192.168.1.2\"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)
}
}

net use f: /delete /y
[/code:1]

Voici le message d'erreur.

Exception calling \"Send\" with \"4\" argument(s): \"Le paramètre 'to' ne peut pas être une chaîne vide.
Nom du paramètre : to\"
At fichier.ps1:28 char:13
+ $smtp.Send( <<<< $emailFrom, $emailTo, $subject, $body)
Exception calling \"Send\" with \"4\" argument(s): \"Le paramètre 'to' ne peut pas être une chaîne vide.
Nom du paramètre : to\"
At C:\fichier.ps1:28 char:13
+ $smtp.Send( <<<< $emailFrom, $emailTo, $subject, $body)


Et pourtant je reçois quand même le mail.

Avez une idée ?

Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 2 semaines #4518 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Script Mail
Salut,
physyo écrit:

Avez une idée ?

Tu devrais ajouter pour chaque champs passé en paramètre une trace avec write-debug.
De plus de connaitre le nom et l'origine de l'exception ne serait pas inutile (Resolve-error), car \"to\" n'est pas un nom de paramètre de cette méthode.
msdn.microsoft.com/en-us/library/h1s04he7.aspx

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 2 semaines #4520 par physyo
Réponse de physyo sur le sujet Re:Script Mail
Comment fonctionne se write-debug ?

Tu peux me donner un exemple ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 2 semaines #4521 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Script Mail
physyo écrit:

Comment fonctionne se write-debug ?

C'est un affichage sur la console dépendant du contenu de la variable $DebugPreference
physyo écrit:

Tu peux me donner un exemple ?

Pour toutes commandes tu peux utiliser l'aide en ligne [code:1]help write-debug -det[/code:1]
Sinon:
[code:1]
Write-Debug \"Open Reader $FileName\"
write-Debug (\"[{0}] Process : {1}\" -F ($MyInvocation.InvocationName,$_.Name))
Write-debug \"$($Variable.Value.GetType())\"
[/code:1]
Ensuite si tu souhaites déclencher un traitement d'après le contenu de la variable $Debugpreference:
[code:1]
function Backup-Collection($Collection,$Message)
{ #Sauvegarde dans un fichier temporaire unique le contenu de la collection de lignes en cours d'analyse
if ( $DebugPreference -ne \"SilentlyContinue\"«»)
{
if ($Collection -is [System.Collections.IEnumerable])
{
$TempFile = [IO.Path]::GetTempFileName()
$Collection|Set-Content $TempFile
Write-Debug $Message
Write-Debug \"Sauvegarde dans le fichier temporaire : $TempFile\"
}
else {Write-Warning \"Backup-Collection : La variable `$Collection n'est pas une collection d'objet.\"}
}
}
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 3/04/09 13:13

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.076 secondes
Propulsé par Kunena