Envoyer un email avec PowerShell

Bonjour,
Je souhaite mettre en place l'envoi d'emails en utilisant PowerShell depuis mon PC. J'ai la version 5.1 de PowerShell.

J'essaie de suivre les instructions ici : https://mailtrap.io/blog/powershell-send-email/

Étant chez OVH Allemagne j'ai utilisé les informations suivantes : "smtp.mail.ovh.de" -Port 587

Send-MailMessage -To "email du destinaire" -From "mon adresse email" -Subject "Your message subject" -Body "Some important plain text!" -Credential (Get-Credential) -SmtpServer "smtp.mail.ovh.de" -Port 587

Dans le code il n'y a pas d'emplacement pour mon mot de passe, ce que je trouve étrange.

Où est-ce que je me trompe ?

Avez-vous des ressources à recommander pour apprendre à mettre cela en place ? Mon objectif est de créer un fichier texte (CSS/HTML) par email et une table listant les destinataires et les fréquences d'envoi. Je suis pour le moment sur PC mais j'imagine qu'il faudra que je passe par un mode serveur mais aucune idée comment faire à partir de mon compte OVH.

Merci


Dans le code il n'y a pas d'emplacement pour mon mot de passe, ce que je trouve étrange.

Où est-ce que je me trompe ?


Bonjour,

J'ai un tout petit peu cherché et j'ai trouvé ceci:

> $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
> $SMTPClient.EnableSsl = $true
> $SMTPClient.Credentials = New-Object System.Net.NetworkCredential("username", "password");
> $SMTPClient.Send($SMTPMessage)

Source: https://stackoverflow.com/questions/12460950/how-to-pass-credentials-to-the-send-mailmessage-command-for-sending-emails

Bonjour à vous deux,

@VeroniqueB42 le retour apporté par @Fritz2cat répond il à votre demande?

^FabL

Voici la réponse que j&#39;ai trouvé et qui fonctionne chez moi :<br /><br />$Username &#61; &#34;&#34;;<br />$Password &#61; &#34;&#34;;<br /><br />function Send-ToEmail([string]$email){<br /><br />    $message &#61; new-object Net.Mail.MailMessage;<br />    $message.From &#61; &#34;&#34;;<br />    $message.To.Add($email);<br />    $message.Subject &#61; &#34;subject text here...&#34;;<br />    $message.IsBodyHTML &#61; $true;<br />    $message.Body &#61; Get-Content &#39;&#39; -Raw | Out-String ;<br /><br />    $smtp &#61; new-object Net.Mail.SmtpClient(&#34;ssl0.ovh.net&#34;, &#34;587&#34;);<br />    $smtp.EnableSSL &#61; $true;<br />    $smtp.Credentials &#61; New-Object System.Net.NetworkCredential%28$Username, $Password);<br />    $smtp.send($message);<br />    write-host &#34;Mail Sent&#34; ; <br /> }<br />Send-ToEmail  -email &#34;&#34;;
Voici le code que j&#39;ai finalement appliqué :<br /><br />    $Username &#61; &#34;&#34;;<br />    $Password &#61; &#34;&#34;;<br /><br />    function Send-ToEmail([string]$email){<br /><br />        $message &#61; new-object Net.Mail.MailMessage;<br />        $message.From &#61; &#34;&#34;;<br />        $message.To.Add($email);<br />        $message.Subject &#61; &#34;subject text here...&#34;;<br />        $message.IsBodyHTML &#61; $true;<br />        $message.Body &#61; Get-Content &#39;&#39; -Raw | Out-String ;<br /><br />        $smtp &#61; new-object Net.Mail.SmtpClient(&#34;ssl0.ovh.net&#34;, &#34;587&#34;);<br />        $smtp.EnableSSL &#61; $true;<br />        $smtp.Credentials &#61; New-Object System.Net.NetworkCredential%28$Username, $Password);<br />        $smtp.send($message);<br />        write-host &#34;Mail Sent&#34; ; <br />     }<br />    Send-ToEmail  -email &#34;&#34;;
<blockquote><br />Voici la réponse que j&#39;ai trouvé et qui fonctionne chez moi :<br /><br />$Username &#61; &#34;&#34;;<br />$Password &#61; &#34;&#34;;<br /><br />function Send-ToEmail([string]$email){<br /></blockquote><br /><br />Il y a des balises qui ne sont pas passées. Extrait du code source:<br /><br />    <p>Voici le code que j&#39;ai finalement appliqué :</p><br /><br />    <pre><code>$Username &#61; &#34;&lt;mon email ovh&gt;&#34;;<br />    $Password &#61; &#34;&lt;mon mot de passe pour mon webmail&gt;&#34;;<br /><br />&#96;function Send-ToEmail([string]$email){&#96;<br /><br />    $message &#61; new-object Net.Mail.MailMessage;<br />    $message.From &#61; &#34;&lt;mon email ovh&gt;&#34;;<br />    $message.To.Add($email);<br />    $message.Subject &#61; &#34;subject text here...&#34;;<br />    $message.IsBodyHTML &#61; $true;<br />    $message.Body &#61; Get-Content &#39;&lt;le contenu de mon email.html&gt;&#39; -Raw | Out-String ;<br /><br />    $smtp &#61; new-object Net.Mail.SmtpClient(&#34;ssl0.ovh.net&#34;, &#34;587&#34;);<br />    $smtp.EnableSSL &#61; $true;<br />    $smtp.Credentials &#61; New-Object System.Net.NetworkCredential%28$Username, $Password);<br />    $smtp.send($message);<br />    write-host &#34;Mail Sent&#34; ; <br />     }<br />    Send-ToEmail  -email &#34;&lt;email du destinataire&gt;&#34;;</code></pre>