Gandip's Blog

My Blogs

Fun with PowerShell:Send email

Using PowerShell now you can send email.

You can use Send-Mailmessage Cmdlets to send email. Here a code

send-mailmessage –To recipient@domain –From sender@domain –subject subject        –body “Email Message” –smtpserver yoursmtpserver 

However, if you are in open proxy then you may experience  spamcop . However if you have in premise. Exchange then you can send Email.  In my example i setup local smtp server.

sendemail

serveremail

If your mail server support SSL then you may use –usessl . You may authenticate to your smtp server using –credential switch.

Here is the manuals for Send-MailMessage cmdlets

SYNTAX
    Send-MailMessage [-To] <string[]> [-Subject] <string> -From <string> [[-Body] <string>] [[-SmtpServer] <string>] [-Attachments <string[]>] [-Bcc <string[]>] [-BodyAsHtml] [-Cc <string[]>] [-Credential <PSCredential>] [-DeliveryNot
    ificationOption {None | OnSuccess | OnFailure | Delay | Never}] [-Encoding <Encoding>] [-Priority {Normal | Low | H
    igh}] [-UseSsl] [<CommonParameters>]

DESCRIPTION
    The Send-MailMessage cmdlet sends an e-mail message from within Windows PowerShell.

PARAMETERS
    -Attachments <string[]>
        Specifies the path and file names of files to be attached to the e-mail message. You can use this parameter or
        pipe the paths and file names to Send-MailMessage.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?       true (ByValue)
        Accept wildcard characters?  false

    -Bcc <string[]>
        Specifies the e-mail addresses that receive a copy of the mail but are not listed as recipients of the message.
         Enter names (optional) and the e-mail address, such as "Name <someone@example.com>".

        Required?                    false
        Position?                    named
        Default value                None
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -Body <string>
        Specifies the body (content) of the e-mail message.

        Required?                    false
        Position?                    3
        Default value                None
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -BodyAsHtml [<SwitchParameter>]
        Indicates that the value of the Body parameter contains HTML.

        Required?                    false
        Position?                    named
        Default value                False
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -Cc <string[]>
        Specifies the e-mail addresses to which a carbon copy (CC) of the e-mail message is sent. Enter names (optional
        ) and the e-mail address, such as "Name <someone@example.com>".

        Required?                    false
        Position?                    named
        Default value                None
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -Credential <PSCredential>
        Specifies a user account that has permission to perform this action. The default is the current user.

        Type a user name, such as "User01" or "Domain01\User01". Or, enter a PSCredential object, such as one from the
        Get-Credential cmdlet.

        Required?                    false
        Position?                    named
        Default value                Current user
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -DeliveryNotificationOption <DeliveryNotificationOptions>
        Specifies the delivery notification options for the e-mail message. You can specify multiple values. "None" is
        the default value.  The alias for this parameter is "dno".

        The delivery notifications are sent in an e-mail message to the address specified in the value of the To parame
        ter.

        Valid values are:

         -- None: No notification.
         -- OnSuccess: Notify if the delivery is successful.
         -- OnFailure: Notify if the delivery is unsuccessful.
         -- Delay: Notify if the delivery is delayed.
         -- Never: Never notify.

        Required?                    false
        Position?                    named
        Default value                None
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -Encoding <Encoding>
        Specifies the encoding used for the body and subject. Valid values are ASCII, UTF8, UTF7, UTF32, Unicode, BigEn
        dianUnicode, Default, and OEM. ASCII is the default.

        Required?                    false
        Position?                    named
        Default value                ASCII
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -From <string>
        Specifies the address from which the mail is sent. Enter a name (optional) and e-mail address, such as "Name <s
        omeone@example.com>". This parameter is required.

        Required?                    true
        Position?                    named
        Default value                None
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -Priority <MailPriority>
        Specifies the priority of the e-mail message. The valid values for this are Normal, High, and Low. Normal is th
        e default.

        Required?                    false
        Position?                    named
        Default value                Normal.
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -SmtpServer <string>
        Specifies the name of the SMTP server that sends the e-mail message.

        The default value is the value of the $PSEmailServer preference variable. If the preference variable is not set
         and this parameter is omitted, the command fails.

        Required?                    false
        Position?                    4
        Default value                $PSEmailServer
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -Subject <string>
        Specifies the subject of the e-mail message. This parameter is required.

        Required?                    true
        Position?                    2
        Default value                None
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -To <string[]>
        Specifies the addresses to which the mail is sent. Enter names (optional) and the e-mail address, such as "Name
         <someone@example.com>". This parameter is required.

        Required?                    true
        Position?                    1
        Default value                None
        Accept pipeline input?       false
        Accept wildcard characters?  false

    -UseSsl [<SwitchParameter>]
        Uses the Secure Sockets Layer (SSL) protocol to establish a connection to the remote computer to send mail. By
        default, SSL is not used.

        Required?                    false
        Position?                    named
        Default value                False
        Accept pipeline input?       false
        Accept wildcard characters?  false

For Help:

get-help send-mailmessage -full