Windows 2003 R2を使用して、コマンドラインから電子メールを送信する最も簡単な方法


11

Windows 2003 R2サーバーがあり、コマンドラインから電子メールを送信したい。このサーバーには、SMTPサービスが構成されていません。メールを送ってくれるライナーがありますか?現時点での特定のユースケースは、パフォーマンスアラートがトリガーされたときに電子メールを送信することですが、一般的には有用です。

私は次のようなものを望んでいます

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

更新: サードパーティのソフトウェアをインストールする必要のないソリューションを希望します。


blatやsendemailなどのユーティリティはインストールする必要がありません。どちらも独立したexeファイルです。
ジョンガーデニアス

少なくともexe(blatまたはpowershell)を各マシンにコピーする必要があることを受け入れる必要があると思います。その場合、blatは非常に使いやすいです。ありがとう。MSがこの機能を標準のディストリビューションに追加した有用性の低い他の機能をいくつ考慮しているのか、まだ疑問に思っています。
ピーター

回答:


15

私はblatを試します。あなたはvbscriptを書くことができますが、メールを送信するための組み込みの実行可能ファイルはありません


二次ブラット。コマンドラインから直接パラメーターを渡すことについて少し気難しいかもしれませんが、一度それを釘付けすると、OPが必要とすることを正確に行います。
クリスソープ

私は何年もの間blatを使用しており、大きな成功を収めています。ただし、PowerShellで記述している場合は、切り替えます。
uSlackr

blatはWindows上のPHPの送信メールパスとして機能しますか?
SaidbakR

14

cmd.exeではなくpowershellを検討しますか?その場合、メールの送信が組み込まれています:

$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)  

ライナーを1つ作成するには、以下を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"

1
powershellもインストールする必要があります。そうしないと、vbscriptよりも優先されます。
ジムB

いい答え。わずかな変更ですが、引数は一重引用符である必要があります。
Brain2000

6

私は過去に大きな成功を収めたbmailを使用しました。

使用法(ウェブサイトからコピー)

C:\>bmail /?

    Command Line SMTP Emailer V1.07
    Copyright(C) 2002-2004 Craig.Peacock@beyondlogic.org
    Usage: bmail [options]
            -s    SMTP Server Name
            -p    SMTP Port Number (optional, defaults to 25)
            -t    To: Address
            -f    From: Address
            -b    Text Body of Message (optional)
            -h    Generate Headers
            -a    Subject (optional)
            -m    Filename (optional) Use file as Body of Message
                -c    Prefix above file with CR/LF to separate body from header
                -d    Debug (Show all mail server communications)

1
私は認めなければならない、私は組み込みの解決策を望んでいたが、ジムの答えはそれが私の少し素朴だったことを暗示しているようだ
ピーター



0
sendEmail -f %from_address% -t %to_address% -u "Subject Line" -m "Message" -s %smtp_server%

本番環境で見つけて使用した最も単純なWinユーティリティ。スタンドアロンの実行可能ファイル、インストールまたは必須の構成なし。非TLSとTLSの両方をサポートします。また、デバッガーがあり、これが役立つ場合があります。

http://caspian.dotconf.net/menu/Software/SendEmail/#download

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.