Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to send email with PowerShell

I'd like to send email from PowerShell, so I use this command:

$EmailFrom = "[email protected]" $EmailTo = "[email protected]"   $Subject = "today date" $Body = "TODAY SYSTEM DATE=01/04/2016  SYSTEM TIME=11:32:05.50" $SMTPServer = "smtp.mail.yahoo.com" $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)    $SMTPClient.EnableSsl = $true     $SMTPClient.Credentials = New-Object  System.Net.NetworkCredential("[email protected]", "password")     $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body) 

This command didn't work for Yahoo mail or Outlook mail, but works for my Gmail. Is there anything wrong that I have done?

like image 623
Jessica Avatar asked Apr 01 '16 11:04

Jessica


People also ask

Can I use PowerShell to send email?

The Send-MailMessage cmdlet sends an email message from within PowerShell. You must specify a Simple Mail Transfer Protocol (SMTP) server or the Send-MailMessage command fails. Use the SmtpServer parameter or set the $PSEmailServer variable to a valid SMTP server.

How do I send email from PowerShell to Gmail?

Use the Powershell command-line to send an email using Gmail. Enter the Gmail account credentials. If the test was successful, you will receive the sent message. Send the email with an attachment using Powershell.

How do you send a test email in PowerShell?

Testing SMTP with PowerShell Simply edit the line with SMTP server name, port (it will default to 25 if you don't specify it), the from email address (doesn't have to be valid, just in the format [email protected] and something your mail filter will not block), to email address, subject, and message body as follows.


1 Answers

Following code snippet really works for me:

$Username = "MyUserName"; $Password = "MyPassword"; $path = "C:\attachment.txt";  function Send-ToEmail([string]$email, [string]$attachmentpath){      $message = new-object Net.Mail.MailMessage;     $message.From = "[email protected]";     $message.To.Add($email);     $message.Subject = "subject text here...";     $message.Body = "body text here...";     $attachment = New-Object Net.Mail.Attachment($attachmentpath);     $message.Attachments.Add($attachment);      $smtp = new-object Net.Mail.SmtpClient("smtp.gmail.com", "587");     $smtp.EnableSSL = $true;     $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);     $smtp.send($message);     write-host "Mail Sent" ;      $attachment.Dispose();  } Send-ToEmail  -email "[email protected]" -attachmentpath $path; 
like image 188
IgrDi Avatar answered Oct 12 '22 18:10

IgrDi