Question Formattage du corps des mails... (Résolu)

Plus d'informations
il y a 14 ans 8 mois #1546 par sonic
Bonjour,
J'ai besoin de pouvoir paramétrer complétement mes mail.
Or je ne comprend pas grand chose . Je sais les envoyer, changer l'expéditeur, le serveur smtp, le destinataire que les truc de base de ce

script :

$texte=get-content c:\dev\conv.txt
$expediteur = \" toto@host.com\"
$destinataire = \" test@eee.fr\"
$serveur = \"smglo1tls\"
#$fichier = \"c:\dev\mail.txt\"
$objet = \"Envoi de mail via powershell \" + [System.DateTime]::Now
$texte2=\"$texte\"

$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte2

#$attachment = new-object System.Net.Mail.Attachment $fichier
#$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

$client.Send($message)

J'ais vu que tous les paramétrages sont accessbiles \"voir capture\". J'ai pu le constater en affichant $message et $client, $client.send etc

... J'ai bien tenté quelque manip mais sans succés .

Deplus le body du mail est correct a l'écrant, correct dans un fichier texte mais tout en ligne une fois envoiyer dans un mail (corp) que pui

je y faire . Je pensais que modifier le paramétre d'envoit du mail en mime au lieu de utf8 resoudrait mon problème .

Et pour finir et ces un probléme plusieurs fois rencontré ici , impossible d'envyer 2 fois de suite un fichier de meme nom en piéce jointe . PS

dis qu'il est utilisé par un autre processus . Que peut on y faire ?



Je vois bien les paramétres mais je ne sais pas y accéder .
Merci de toute aide

Message édité par: sonic31, à: 23/01/08 17:01<br><br>Message édité par: Arnaud, à: 31/01/08 23:07
Pièces jointes :

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

Plus d'informations
il y a 14 ans 8 mois #1556 par maycry
Réponse de maycry sur le sujet Re:Les mails ......
oué j'ai le même probléme j'ai beau faire un Saut à la ligne dans le corp du mail il met tout ligne par ligne, il ne prend pas compte powershell.

il doit y'avoir une solution,

je suis obliger de rédiger un VBW dans mon powershell pour l'envoi de mail correctement contenant mon fichier en corps du mail et de suprimer le VBS ensuite par powershell.


:S :whistle: chiant ca

Si quelqu'un connu l'astuce ca serait cool ^^^^^3points pour vbs qui le fait correctement

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

Plus d'informations
il y a 14 ans 8 mois #1557 par sonic
Réponse de sonic sur le sujet Re:Les mails ......
En tous les cas c'est possible je l'ai vu (le code) dans des forums mais sans commentaire et noyé dans un mega script je ne comprend rien . J'ai aussi une idée du paramétrage des mail (CC,To, sender, format du body etc ...) La aussi j'ai vu des scripts le faisant mais entre la complexité, la taille et sans commentaire impossible d'en tirer quelque chose . J'ai a peine progréssé .
Voici ma petite avancé bien inutile cepandant .... :(

J'ai juste essayer de modifer le To et comme vous le voyez ca ne fonctionne pas . Dans le meilleur des cas ca ajoute un espace dans le paramétre To si j'en met dans la variable . Il ne met pas le texte que je lui met !!!
Je voudrais voir si la modification du paramétre body encoding solutionne mes problème de format du corp du mail . J4avance pas :(<br><br>Message édité par: sonic31, à: 24/01/08 15:46
Pièces jointes :

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

Plus d'informations
il y a 14 ans 8 mois #1558 par maycry
Réponse de maycry sur le sujet Re:Les mails ......
oué comme je devais finir mon script moi je l'ai fait en VBS ca donne CA JUSTE POUR ENVOYER mon fichier lenght.log en CORPS DU MESSAGE et nom en fichier joint corectement



$log =[system.IO.File]::CreateText(\&quot;C:\PowerShell_SCRIPTS\Temp\Lenght.log\&quot;)

$log.WriteLine(\&quot;
\&quot;)
$log.WriteLine(\&quot;La Taille Total de la sauvegarde BACKUPALL a pour chiffre $SOMME GO\&quot;)
$log.WriteLine(\&quot;
\&quot;)
$log.WriteLine(\&quot;$FolderH\&quot;)
$log.WriteLine(\&quot;
\&quot;)
$log.WriteLine(\&quot;$FolderDA\&quot;)
$log.WriteLine(\&quot;
\&quot;)
$log.WriteLine(\&quot;$FolderA\&quot;)
$log.WriteLine(\&quot;
\&quot;)
$log.WriteLine(\&quot;$FolderDE\&quot;)
$log.WriteLine(\&quot;
\&quot;)
$log.WriteLine(\&quot;$FolderI\&quot;)
$log.Close()

#*****************************************************************************

$logfile = \&quot;\&quot;\&quot;&amp;logfile&amp;\&quot;\&quot;\&quot;\&quot;\&quot;

$vbs =[system.IO.File]::CreateText(\&quot;C:\PowerShell_SCRIPTS\Temp\Send_Mail.vbs\&quot;)

$vbs.WriteLine(\&quot;Const ForReading = 1\&quot;)
$vbs.WriteLine(\&quot;set ObjFso = CreateObject (\&quot;\&quot;Scripting.FilesystemObject\&quot;\&quot;)\&quot;)
$vbs.WriteLine(\&quot;set ObjTextFile = objFSO.OpentextFile _\&quot;)
$vbs.WriteLine(\&quot;(\&quot;\&quot;C:\PowerShell_SCRIPTS\Temp\Lenght.log\&quot;\&quot;, ForReading)\&quot;)
$vbs.WriteLine(\&quot;LogFile = ObjtextFile.ReadAll\&quot;)
$vbs.WriteLine(\&quot;ObjTextfile.close\&quot;)
$vbs.WriteLine(\&quot;' Cr?ation de la Section d'envoi de mail\&quot;)
$vbs.WriteLine(\&quot;Set objMessage = CreateObject(\&quot;\&quot;CDO.Message\&quot;\&quot;)\&quot;)
$vbs.WriteLine(\&quot;objMessage.Subject = \&quot;\&quot;Checked_Folders_Lenght\&quot;\&quot;\&quot;)
$vbs.WriteLine(\&quot;objMessage.From = \&quot;\&quot;Status_BACKUPALL@cequeutuveux.com\&quot;\&quot;\&quot;)
$vbs.WriteLine(\&quot;objMessage.To = \&quot;\&quot;admin@cequetuveux.com\&quot;\&quot;\&quot;)
$vbs.WriteLine(\&quot;objMessage.TextBody = \&quot;\&quot;$logfile\&quot;)
$vbs.WriteLine(\&quot;'objMessage.AddAttachment (\&quot;\&quot;E:\DCmailscript\sendmail\Backup_ALL.log\&quot;\&quot;)\&quot;)
$vbs.WriteLine(\&quot;'==Section des param?tres WINDOWS template pour l'utilisation de l'object CDO.Message\&quot;)
$vbs.WriteLine(\&quot;objMessage.Configuration.Fields.Item _\&quot;)
$vbs.WriteLine(\&quot;(\&quot;\&quot;schemas.microsoft.com/cdo/configuration/sendusing\"\";) = 2\")
$vbs.WriteLine(\&quot;'nom du serveur smtp\&quot;)
$vbs.WriteLine(\&quot;objMessage.Configuration.Fields.Item _\&quot;)
$vbs.WriteLine(\&quot;(\&quot;\&quot;schemas.microsoft.com/cdo/configuration/smtpserver\"\";) = \"\"TON SERVEUR\"\"\")
$vbs.WriteLine(\&quot;'port du server\&quot;)
$vbs.WriteLine(\&quot;objMessage.Configuration.Fields.Item _\&quot;)
$vbs.WriteLine(\&quot;(\&quot;\&quot;schemas.microsoft.com/cdo/configuration/...verport\"\";) = 25\")
$vbs.WriteLine(\&quot;\&quot;)
$vbs.WriteLine(\&quot;objMessage.Configuration.Fields.Update\&quot;)
$vbs.WriteLine(\&quot;'==Fin des param?tres / commande d'envoi du mail==\&quot;)
$vbs.WriteLine(\&quot;objMessage.Send\&quot;)
#$vbs.WriteLine(\&quot;Set objFSO = CreateObject(\&quot;\&quot;Scripting.FileSystemObject\&quot;\&quot;)\&quot;)
#$vbs.WriteLine(\&quot;objFSO.DeleteFile(\&quot;\&quot;C:\PowerShell_SCRIPTS\Temp\*.log\&quot;\&quot;)\&quot;)

$vbs.close()

$temp =[system.IO.File]::CreateText(\&quot;C:\PowerShell_SCRIPTS\Temp\temp.txt\&quot;)

$temp.WriteLine(\&quot;
\&quot;)
$temp.Close()


$WshShell = New-Object -comobject \&quot;Wscript.shell\&quot;
$WshShell.run(\&quot;powershell.exe C:\PowerShell_SCRIPTS\Temp\Send_Mail.vbs\&quot;)


sleep 30

Remove-Item C:\PowerShell_SCRIPTS\Temp\*.*



Le résultat par mail ^^ en corps
Ma tite vue

t'imagine la ralonge alors que powershell pourrait le faire ^^^^ mais il faut qu'on trouve

La Taille Total de la sauvegarde BACKUPALL a pour chiffre 108.5 GO
Le dossier Home a une taille de 59.34 GO
Le dossier Data a une taille de 19.91 GO
Le dossier AncienFileServer a une taille de 5.75 GO
Le dossier DevSav a une taille de 7.19 GO
Le dossier IntSav a une taille de 16.31 GO

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

Plus d'informations
il y a 14 ans 8 mois #1566 par sonic
Réponse de sonic sur le sujet Re:Les mails ......
ahhhhhhhhhhhhhhhh
J'ai des pistes , une pas trop mal l'autre top mais bon faut que je teste .
Si je peu tester ce we de chez moi (je sais pas si mon FAI fait relais smpt) je publi lundi .
Juste une piste rapidement la version pas mal je met ma variable dans un fichier texte que je recupére avec get-content puis je rajoute les retour chariot et echapement et le texte .
Ca donne ca pour les rajouts:
$g c'est ma variable que j'ai fait passer dans un fciher pour l'avoir sous forme de texte .
PS C:\dev&gt; $z= $z +\&quot;rr tt `r`n $g\&quot;
PS C:\dev&gt; $z
aarr tt
rr tt
25/01/2008 11:41:19 75 ffdfff.txt C:\repsurveille
Il faudrait que je puisse traduire directement ma variable en texte (c'est un objet) poure ne pas avoir a passer par le fichier mais j'ai pas encore trouver
Bon je continu .

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

Plus d'informations
il y a 14 ans 8 mois #1569 par maycry
Réponse de maycry sur le sujet Re:Les mails ......
Oui mais c'est chiant d'utiliser `n

surtout si tu utilise déja un fichier que tu veux qu'il l'inclus dans le corps directement ^^

:angry: grrr

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

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