Question
Script Mail
- physyo
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 15 ans 2 semaines #4518
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Script Mail
Salut,
physyo écrit:
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
physyo écrit:
Tu devrais ajouter pour chaque champs passé en paramètre une trace avec write-debug.Avez une idée ?
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.
- physyo
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
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 ?
Tu peux me donner un exemple ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 15 ans 2 semaines #4521
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Script Mail
physyo écrit:
physyo écrit:
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
C'est un affichage sur la console dépendant du contenu de la variable $DebugPreferenceComment fonctionne se write-debug ?
physyo écrit:
Pour toutes commandes tu peux utiliser l'aide en ligne [code:1]help write-debug -det[/code:1]Tu peux me donner un exemple ?
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
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Script Mail