官术网_书友最值得收藏!

Sending e-mail

Integration with e-mail is a key capability for automating administration tasks. With e-mail, you can run tasks that automatically let you know when they are complete, or e-mail users when information is needed from them, or even send reports to administrators.

This recipe shows different methods of sending e-mail to users.

Getting ready

To send an e-mail using PowerShell, we will need a mail system capable of accepting SMTP mail from your computer. This can be a Microsoft Exchange server, and IIS server, a Linux host, or even a public mail service such as Google Mail. The method we use may change how the e-mail appears to the end recipient and may cause the message to be flagged as spam.

How to do it...

To send e-mail using the traditional .NET method:

  1. Open PowerShell and load the following function:
    function Send-SMTPmail($to, $from, $subject, $smtpServer, $body) 
    {
            $mailer = new-object Net.Mail.SMTPclient($smtpServer)
            $msg = new-object Net.Mail.MailMessage($from, $to, $subject, $body)
            $msg.IsBodyHTML = $true
            $mailer.send($msg)
    }
  2. To send the mail message, call the following function:
    Send-SMTPmail -to "admin@contoso.com" -from "mailer@contoso.com" `
    -subject "test email" -smtpserver "mail.contoso.com" -body "testing" 
  3. To send e-mail using the included PowerShell Cmdlet.
  4. Use the Send-MailMessage command as shown:
    Send-MailMessage -To admin@contoso.com -Subject "test email" `
    -Body "this is a test" -SmtpServer mail.contoso.com `
    -From mailer@contoso.com  

How it works...

The first method shown uses a traditional .NET process to create and send the e-mail. If you have experience programming in one of the .NET languages, this process may be familiar. The function starts by creating a Net.Mail.SMTPclient object that allows it to connect to the mail server. Then a Net.Mail.MailMessage object is created and populated with the e-mail content. Lastly, the e-mail is sent to the server.

The second method uses a in-built PowerShell cmdlet named Send-MailMessage. This method simplifies the mailing method into a single command while providing flexibility in the mailing options and methods of connecting to mail servers.

There's more...

Most e-mail functions can be performed by the Send-MailMessage command. More information can be found by executing help Send-MailMessage. The following additional command switches allow the command to perform most mail functions needed:

  • Attachments
  • CC/BCC
  • SMTP authentication
  • Delivery notification
  • E-mail priority
  • SSL encryption
主站蜘蛛池模板: 临洮县| 乐亭县| 广州市| 惠来县| 大竹县| 西宁市| 东安县| 旬邑县| 张北县| 黎城县| 怀化市| 康定县| 民勤县| 遂川县| 曲沃县| 临西县| 阿尔山市| 伊通| 龙山县| 丰镇市| 郴州市| 云南省| 五寨县| 阜新市| 麻栗坡县| 南宫市| 伊通| 石狮市| 策勒县| 新田县| 瑞安市| 朝阳县| 南平市| 托里县| 梁平县| 山东| 海口市| 勃利县| 湟源县| 景宁| 斗六市|