Windows-Server-2003

使用 windows 2003 R2 從命令行發送電子郵件的最簡單方法

  • January 4, 2022

我有一個 Windows 2003 R2 伺服器,我想從命令行發送一封電子郵件。此伺服器未配置 SMTP 服務。是否有一個班輪可以讓我發送電子郵件?我目前的具體案例是在觸發性能警報時發送電子郵件,但一般來說它會很有用。

我希望有類似的東西

foomail -t peter@example.org -f blah@example.org -m "Alert!  the sky is falling"

更新: 我更喜歡不涉及安裝 3rd 方軟體的解決方案。

我會嘗試blat。您可以編寫一個 vbscript,但沒有內置的執行檔來發送郵件

你會考慮 powershell 而不是 cmd.exe 嗎?如果是這樣,發送郵件是內置的:

$SmtpClient = New-Object System.Net.Mail.SmtpClient
$SmtpServer = "your.mail.host.com"
$SmtpClient.host = $SmtpServer 

$From = "Me <User@example.com>"
$To = User2@example.com
$Title = "Subject"
$Body = "Body Text" 
$SmtpClient.Send($From,$To,$Title,$Body)  

要製作單行,請將以下內容保存到 powershell 腳本文件 (sendmail.ps1):

  param(  
       [string] $From = "from@example.com",
       [string] $To = "to@example.com",
       [string] $Title = "title",
       [string] $Body = "body"
   )
   $SmtpClient = New-Object System.Net.Mail.SmtpClient
   $SmtpServer = "your.mail.host.com"
   $SmtpClient.host = $SmtpServer 
   $SmtpClient.Send($From,$To,$Title,$Body)

(確保將 smtpserver 更改為您的真實伺服器)

然後您可以使用以下方法呼叫它:

powershell.exe c:\path\to\sendmail.ps1 "from@example.com" "to@example.com" "title" "body"

引用自:https://serverfault.com/questions/110057