Send-MailMessage

電子メールを送信します。

構文

Send-MailMessage
    [-Attachments <String[]>]
    [-Bcc <String[]>]
    [[-Body] <String>]
    [-BodyAsHtml]
    [-Encoding <Encoding>]
    [-Cc <String[]>]
    [-DeliveryNotificationOption <DeliveryNotificationOptions>]
    -From <String>
    [[-SmtpServer] <String>]
    [-Priority <MailPriority>]
    [-ReplyTo <String[]>]
    [[-Subject] <String>]
    [-To] <String[]>
    [-Credential <PSCredential>]
    [-UseSsl]
    [-Port <Int32>]
    [<CommonParameters>]

説明

コマンドレットは Send-MailMessage 、PowerShell 内から電子メール メッセージを送信します。

簡易メール転送プロトコル (SMTP) サーバーを指定する必要があります。または、コマンドが Send-MailMessage 失敗します。 SmtpServer パラメーターを使用するか、変数を$PSEmailServer有効な SMTP サーバーに設定します。 割り当てられる $PSEmailServer 値は、PowerShell の既定の SMTP 設定です。 詳細については、「about_Preference_Variables」を参照してください

警告

Send-MailMessage コマンドレットは廃止されました。 このコマンドレットでは、SMTP サーバーへのセキュリティで保護された接続は保証されません。 PowerShell ですぐに置き換える機能はありませんが、使用しないことを Send-MailMessageお勧めします。 詳細については、「プラットフォーム互換性に関するメモ DE0005」を参照してください

例 1: あるユーザーから別のユーザーにメールを送信する

次の使用例は、あるユーザーから別のユーザーに電子メール メッセージを送信します。

From、ToSubject の各パラメーターはSend-MailMessage、 この例では、SMTP サーバーの既定 $PSEmailServer の変数を使用するため 、SmtpServer パラメーターは必要ありません。

$sendMailMessageSplat = @{
    From = 'User01 <user01@fabrikam.com>'
    To = 'User02 <user02@fabrikam.com>'
    Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplat

このコマンドレットではSend-MailMessage、From パラメーターを使用してメッセージの送信者を指定します。 To パラメーターは、メッセージの受信者を指定します。 Subject パラメーターは、オプションの Body パラメーターが含まれていないため、テキスト文字列のテスト メールをメッセージとして使用します。

例 2: 添付ファイルを送信する

この例では、添付ファイルを含む電子メール メッセージを送信します。

$sendMailMessageSplat = @{
    From = 'User01 <user01@fabrikam.com>'
    To = 'User02 <user02@fabrikam.com>', 'User03 <user03@fabrikam.com>'
    Subject = 'Sending the Attachment'
    Body = "Forgot to send the attachment. Sending now."
    Attachments = '.\data.csv'
    Priority = 'High'
    DeliveryNotificationOption = 'OnSuccess', 'OnFailure'
    SmtpServer = 'smtp.fabrikam.com'
}
Send-MailMessage @sendMailMessageSplat

このコマンドレットではSend-MailMessage、From パラメーターを使用してメッセージの送信者を指定します。 To パラメーターは、メッセージの受信者を指定します。 Subject パラメーターは、メッセージの内容を記述します。 Body パラメーターは、メッセージの内容です。

Attachments パラメーターは 電子メール メッセージに添付されている現在のディレクトリ内のファイルを指定します。 Priority パラメーターは、メッセージを優先度にHigh設定します。 DeliveryNotificationOption パラメーターは、2 つの値をOnSuccess指定しますOnFailure 送信者は、メッセージ配信の成功または失敗を確認する電子メール通知を受け取ります。 SmtpServer パラメーターは、SMTP サーバーsmtp.fabrikam.comを .

例 3: メーリング リストにメールを送信する

次の使用例は、メール メッセージをメーリング リストに送信します。

$sendMailMessageSplat = @{
    From = 'User01 <user01@fabrikam.com>'
    To = 'ITGroup <itdept@fabrikam.com>'
    Cc = 'User02 <user02@fabrikam.com>'
    Bcc = 'ITMgr <itmgr@fabrikam.com>'
    Subject = "Don't forget today's meeting!"
    Credential = 'domain01\admin01'
    UseSsl = $true
}
Send-MailMessage @sendMailMessageSplat

このコマンドレットではSend-MailMessage、From パラメーターを使用してメッセージの送信者を指定します。 To パラメーターは、メッセージの受信者を指定します。 Cc パラメーターは、メッセージのコピーを指定された受信者に送信します。 Bcc パラメーターは、メッセージのブラインド コピーを送信します。 ブラインド コピーは、他の受信者から非表示になっているメール アドレスです。 オプションBody パラメーターが含まれていないため、Subject パラメーターはメッセージです。

Credential パラメーターは、メッセージの送信に管理者メイン資格情報を使用することを指定します。 UseSsl パラメーターは、Secure Socket Layer (SSL) がセキュリティで保護された接続を作成することを指定します。

パラメーター

-Attachments

電子メール メッセージに添付するファイルのパスとファイル名を指定します。 このパラメーターを使用するか、パスとファイル名をパイプで渡すことができます Send-MailMessage

Type:String[]
Aliases:PsPath
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Bcc

メールのコピーを受信するが、メッセージの受信者として表示されないメール アドレスを指定します。 名前 (省略可能) と電子メール アドレスを入力します (例 Name <someone@fabrikam.com>: .

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Body

電子メール メッセージの内容を指定します。

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-BodyAsHtml

Body パラメーターの値に HTML が含まれていることを指定します。

Type:SwitchParameter
Aliases:BAH
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Cc

電子メール メッセージのカーボン コピー (CC) の送信先の電子メール アドレスを指定します。 名前 (省略可能) と電子メール アドレスを入力します (例 Name <someone@fabrikam.com>: .

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

この処理を実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

User01 や Doメイン01\User01 などのユーザー名を入力します。 または、コマンドレットの PSCredential オブジェクト (例: PSCredential オブジェクト) を Get-Credential 入力します。

資格情報は PSCredential オブジェクトに格納され、パスワードは SecureString として格納されます。

Note

SecureString データ保護の詳細については、「SecureString のセキュリティ保護方法」を参照してください

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DeliveryNotificationOption

電子メール メッセージの配信通知オプションを指定します。 複数の 値を指定することができます。 None が既定値です。 このパラメーターの別名は DNO です

配信通知は、From パラメーターのアドレスに送信されます。

このパラメーターに使用できる値は次のとおりです。

  • None: 通知なし。
  • OnSuccess: 配信が成功したかどうかを通知します。
  • OnFailure: 配信が失敗した場合に通知します。
  • Delay: 配信が遅れた場合に通知します。
  • Never: 通知しない。

これらの値は、フラグ ベースの列挙体として定義されます。 このパラメーターを使用して、複数の値を組み合わせて複数のフラグを設定できます。 値は、値の 配列として、またはそれらの値のコンマ区切り文字列として DeliveryNotification パラメーターに渡すことができます。 コマンドレットは、バイナリ OR 操作を使用して値を結合します。 配列として値を渡すことは最も簡単なオプションであり、値にタブ補完を使用することもできます。

Type:DeliveryNotificationOptions
Aliases:DNO
Accepted values:None, OnSuccess, OnFailure, Delay, Never
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Encoding

ターゲット ファイルのエンコードの種類を指定します。 既定値は utf8NoBOM です。

このパラメーターに使用できる値は次のとおりです。

  • ascii: ASCII (7 ビット) 文字セットのエンコードを使用します。
  • ansi: 現在のカルチャの ANSI コード ページのエンコードを使用します。 このオプションは PowerShell 7.4 で追加されました。
  • bigendianunicode: ビッグ エンディアンバイト順を使用して UTF-16 形式でエンコードします。
  • bigendianutf32: ビッグ エンディアンバイト順を使用して UTF-32 形式でエンコードします。
  • oem: MS-DOS およびコンソール プログラムの既定のエンコードを使用します。
  • unicode: リトル エンディアンバイト順を使用して UTF-16 形式でエンコードします。
  • utf7: UTF-7 形式でエンコードします。
  • utf8: UTF-8 形式でエンコードします。
  • utf8BOM: バイト オーダー マーク (BOM) を使用して UTF-8 形式でエンコードします。
  • utf8NoBOM: バイト オーダー マーク (BOM) を使用せずに UTF-8 形式でエンコードします。
  • utf32: UTF-32 形式でエンコードします。

PowerShell 6.2 以降では、Encoding パラメーターを使用すると、登録済みコード ページの数値 ID (いいね) -Encoding 1251や登録済みコード ページの文字列名 (例-Encoding "windows-1251") も使用できます。 詳細については、Encoding.CodePage の .NET ドキュメントを 参照してください

PowerShell 7.4 以降では、Encoding パラメーターの値をAnsi使用して、手動で指定しなくても、現在のカルチャの ANSI コード ページの数値 ID を渡すことができます。

Note

UTF-7* の使用は推奨されなくなりました。 PowerShell 7.1 の時点で、Encoding パラメーターに指定utf7すると警告が書き込まれます。

Type:Encoding
Aliases:BE
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:ASCII
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-From

From パラメーターが必要です。 このパラメーターは、送信者のメール アドレスを指定します。 名前 (省略可能) と電子メール アドレスを入力します (例 Name <someone@fabrikam.com>: .

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Port

SMTP サーバーの代替ポートを指定します。 既定値は 25 です。これは、既定の SMTP ポートです。

Type:Int32
Position:Named
Default value:25
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Priority

電子メール メッセージの優先順位を指定します。 既定値は Normal です。 このパラメーターに使用できる値は、Normal、High、Low です。

Type:MailPriority
Accepted values:Normal, High, Low
Position:Named
Default value:Normal
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ReplyTo

このメッセージへの返信に使用する追加の電子メール アドレス (From アドレス以外) を指定します。 名前 (省略可能) と電子メール アドレスを入力します (例 Name <someone@fabrikam.com>: .

このパラメーターは、PowerShell 6.2 で導入されました。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SmtpServer

電子メール メッセージを送信する SMTP サーバーの名前を指定します。

既定値は、基本設定変数の $PSEmailServer 値です。 基本設定変数が設定されておらず、このパラメーターが使用されていない場合、コマンドは Send-MailMessage 失敗します。

Type:String
Aliases:ComputerName
Position:3
Default value:$PSEmailServer
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Subject

Subject パラメーターは必要ありません。 このパラメーターは、電子メール メッセージの件名を指定します。

Type:String
Aliases:sub
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-To

To パラメーターが必要です。 このパラメーターは、受信者のメール アドレスを指定します。 名前 (省略可能) と電子メール アドレスを入力します (例 Name <someone@fabrikam.com>: .

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-UseSsl

Secure Sockets Layer (SSL) プロトコルは、メールを送信するリモート コンピューターへのセキュリティで保護された接続を確立するために使用されます。 既定では、SSL は使用されません。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

入力

String

添付ファイルのパスとファイル名をこのコマンドレットにパイプできます。

出力

None

このコマンドレットは、出力を返しません。

メモ

Send-MailMessage コマンドレットは廃止されました。 詳細については、「プラットフォーム互換性に関するメモ DE0005」を参照してください。 このコマンドレットでは、SMTP サーバーへのセキュリティで保護された接続は保証されません。

DE0005 は、サード パーティ製ライブラリ MailKit の使用を提案します。 Exchange Online を使用している場合は、Microsoft Graph PowerShell SDK から Send-MgUserMail を使用できます。