Send-MailMessage:PowerShellからのメールの送信
SMTPサーバーを介して電子メールメッセージを送信するには、 Send-MailMessageを使用できます。 PowerShellコマンドレット。この組み込みのコマンドレットを使用して、PowerShellバージョン2.0以降で電子メールを送信できます(以前は、.Net System.Net.Mail
を使用できました。 メールを送信するクラス)。この記事では、 Send-MailMessage
の使用方法を紹介します PowerShellスクリプトから電子メールを送信します。
コマンドレットの構文を取得するには、次のコマンドを実行します。
get-help Send-MailMessage
Send-MailMessage [-To] <String[]> [-Subject] <String> [[-Body] <String>] [[-SmtpServer] <String>] [-Attachments <String[]>] [-Bcc <String[]>] [-BodyAsHtml] [-Cc <String[]>] [-Credential <PSCredential>] [-DeliveryNotificationOption {None | OnSuccess | OnFailure | Delay | Never}] [-Encoding <Encoding>] -From <String> [-Port <Int32>] [-Priority {Normal | Low | High}] [-UseSsl] [<CommonParameters>] The Send-MailMessage cmdlet sends an email message from within Windows PowerShell.
主なオプションは次のとおりです。
- から は送信者アドレスです(SMTPサーバーが送信者のアドレスをチェックせず、匿名で電子メールを送信できる場合は、実際のSMTPアドレスを指定する必要はありません。任意の電子メールアドレスに代わって電子メールメッセージを送信できます)。
- 宛先 –受信者のメールアドレス;
- SMTPServer –電子メールの送信に使用するSMTPサーバーのアドレス。
$ PSEmailServer
でメールサーバーアドレスを設定した場合 環境変数の場合、Send-MailMessageコマンドレットでSMTPサーバーアドレスを指定する必要はありません。 次の単純なPowerShellコマンドは、指定された件名と本文を含む電子メールを複数の受信者に送信します。
Send-MailMessage -From'[email protected]' -To'[email protected]'、'[email protected]' -Subject "Test Email Alert" -Body "This is email body text" –smtpServer'smtp.woshub.com'
コマンドレットの属性を簡単に編集できるように、sendemailコマンドは次のように表すことができます。
Send-MailMessage `
-SmtpServer smtp.woshub.com`
-To'[email protected]'、'[email protected]' `
-From'ps- [email protected]'`
-件名"テスト"`
-本文"PowerShellを使用したメールの送信"`
-エンコーディング'UTF8'
最後のコマンドで、電子メールのUTF8エンコーディングを追加で設定していることに注意してください。そうしないと、メールの件名または本文にANSI以外の文字が含まれていると、正しく表示されません。
デフォルトでは、ANSIおよびASCIIエンコーディングがWindowsPowerShellで使用されます。 PSバージョンをPowerShellCoreに更新した場合、このバージョンは既にデフォルトでUTF-8エンコーディングを使用していることに注意してください。デフォルトでは、Send-MailMessageコマンドレットは標準のSMTPポートTCP 25を介して電子メールを送信しようとします。SMTPサーバーが暗号化されたプロトコルのみを使用して電子メールを送信できる場合は、ポート番号を指定できます(ほとんどの場合は465または587です)。 )および UseSsl オプション:
-SmtpServer'smtp.woshub.com' -Port 465 –UseSsl
名前 | SMTPサーバーアドレス | ポート | 暗号化タイプ |
Gmail | smtp.gmail.com | 587 25 465 | TLS TLS SSL |
Office 365 | smtp.office365.com | 587 | TLS |
Outlook.com | smtp-mail.outlook.com | 587 | TLS |
Yahoo | smtp.mail.yahoo.com | 587 | TLS |
iCloudメール | smtp.mail.me.com | 587 | TLS |
AOL | smtp.aol.com | 465 | SSL |
SMTPサーバーが匿名での電子メールの送信を禁止している場合(リレーが拒否されている場合)、次のエラーが表示されます:
5.7.1 Client was not authenticated.
次に、 –資格情報を使用してSMTPサーバーで認証できます。 オプション。
認証するユーザー資格情報をインタラクティブに要求できます:
Send-MailMessage……-Credential(Get-Credential)
また、変数で認証に使用するアカウントを指定できます:
$ cred =Get-Credential
Send-MailMessage ... -Credential $ cred
PowerShellスクリプトでSMTPサーバーに直接接続するためのパスワードを保存する場合は、次の構文を使用します。
$ mypasswd =ConvertTo-SecureString "smP @ ssdw0rrd2" -AsPlainText -Force
$ mycreds =New-Object System.Management.Automation.PSCredential( "[email protected]"、$ mypasswd)
Send-MailMessage ... –Credential $ mycreds
メールに添付ファイルを追加する場合は、 –Attachments
を使用してください オプション。以下の例では、HTML形式で電子メールを送信し、ローカルディスクからfile1.txtとinstall.logを添付します。 Gmail SMTPサーバーを使用します(最初にGmailでアプリのパスワードを作成し、Gmailのパスワードの代わりにSMTP認証に使用する必要があります):
Generated: $(Get-Date-フォーマットg) $ MailMessage =@ {
To ="[email protected]"
Bcc ="[email protected]"、 "[email protected]"
From ="smtpsender1 @ gmail.com "
Subject =" DC Server Report "
Body =" Welcome!
Smtpserver ="smtp.gmail.com"
Port =587
UseSsl =$ true
BodyAsHtml =$ true
Encoding =「UTF8」
添付ファイル=「C:\ Logs \ file1.txt」、「C:\ Logs \install.log」
}
Send-MailMessage @MailMessage -Credential $ cred コード>
添付ファイル付きのHTML形式のメールがGmailインターフェースでどのように表示されるかを次に示します。
-DeliveryNotificationOption
を使用して、電子メールの配信通知(開封確認)を構成できます 。配信通知を使用すると、受信者が電子メールを受信した場合に通知を受けることができます。
使用可能な通知タイプは次のとおりです。
- OnSuccess (配信が成功したかどうかを通知します)
- OnFailure (配信が失敗した場合は通知してください)
- 遅延 (配達が遅れている場合は通知してください)
-
Mac から暗号化された電子メールを送信する方法
通常、メールの交換は安全な問題であり、プロバイダーは送受信するメールのセキュリティに注意を払っています。ただし、電子メールの暗号化は、使用しているすべての電子メール サービスで利用できるとは限りません。メールの安全性をさらに高めたい場合は、メール アプリで使用することをお勧めします。 Mac を使用している限り、マシンのストック メール アプリから暗号化されたメールを送信できます。 組み込みのメール アプリを使用すると、メールを送信する前に暗号化できます。この暗号化プロセスでは、実際には Mac に電子メール証明書をインストールする必要があります。この証明書は、利用可能なオンライン プロ
-
Excel リストからメールを送信する方法 (2 つの効果的な方法)
大規模なグループに大量のメールを送信する必要がある場合は、繰り返しのタスクをすばやく処理できる自動化されたプロセスが必要になります。 Excel の作成 電子メールのリストを含むファイルは、大量の電子メールを送信する最も一般的な方法です。このチュートリアルでは、 Excel からメールを送信する方法を紹介します。 多数の人に自動的にリストします。 Excel リストからメールを送信するための 2 つの便利な方法 下の画像には、一部の人の名前、電子メール、登録番号を含むデータ セットが含まれています。 Excel から リスト、各個人に電子メールを送信する必要があります。これを実現するに