Cara termudah untuk mengirim Email dari baris perintah, menggunakan windows 2003 R2

11

Saya memiliki server Windows 2003 R2 dan saya ingin mengirim email dari baris perintah. Server ini tidak mengonfigurasi layanan SMTP. Apakah ada satu liner yang memungkinkan saya mengirim email? Kasus penggunaan khusus saya saat ini adalah untuk mengirim email ketika peringatan kinerja dipicu, tetapi itu akan berguna secara umum.

Saya berharap untuk sesuatu seperti

foomail -t [email protected] -f [email protected] -m "Alert!  the sky is falling"

Pembaruan: Saya lebih suka solusi yang tidak melibatkan menginstal perangkat lunak pihak ke-3.

Peter
sumber
Utilitas seperti blat dan sendemail tidak memerlukan instalasi. Keduanya file exe yang berdiri sendiri.
John Gardeniers
Saya kira saya harus menerima bahwa saya harus paling tidak menyalin exe (baik blat atau PowerShell) ke setiap mesin. Jika itu masalahnya, maka blat sangat mudah digunakan. Terima kasih. Saya masih bertanya-tanya mengapa MS meninggalkan fitur ini, mengingat berapa banyak yang kurang berguna yang mereka masukkan ke distro standar.
Peter

Jawaban:

15

Saya akan mencoba blat . Anda bisa menulis vbscript tetapi tidak ada executable bawaan untuk mengirim email

Jim B
sumber
seconding blat. Ini bisa menjadi sedikit pemilih tentang melewati parameter langsung dari baris perintah, tetapi begitu Anda memakukannya, melakukan persis apa yang dibutuhkan OP.
Chris Thorpe
Saya telah menggunakan blat selama bertahun-tahun dengan kesuksesan besar. Namun, jika saya menulis dengan PowerShell, saya akan beralih.
uSlackr
Apakah blat dapat berfungsi sebagai jalur pengiriman surat untuk PHP di Windows?
SaidbakR
14

Apakah Anda mempertimbangkan powershell daripada cmd.exe? Jika demikian, pengiriman surat ada di dalam:

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

$From = "Me <[email protected]>"
$To = [email protected]
$Title = "Subject"
$Body = "Body Text" 
$SmtpClient.Send($From,$To,$Title,$Body)  

Untuk membuat satu liner, simpan yang berikut ini ke file skrip powershell (sendmail.ps1):

   param(  
        [string] $From = "[email protected]",
        [string] $To = "[email protected]",
        [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)

(pastikan untuk mengubah smtpserver menjadi yang asli)

Kemudian Anda dapat menyebutnya menggunakan:

powershell.exe c:\path\to\sendmail.ps1 "[email protected]" "[email protected]" "title" "body"
MattB
sumber
1
PowerShell juga harus diinstal, jika tidak saya akan lebih suka daripada vbscript.
Jim B
Jawaban bagus. Hanya satu perubahan kecil, argumen harus berupa tanda kutip tunggal.
Brain2000
6

Saya telah menggunakan bmail dengan sukses besar di masa lalu.

Penggunaan (disalin dari situs web)

C:\>bmail /?

    Command Line SMTP Emailer V1.07
    Copyright(C) 2002-2004 [email protected]
    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)
Zypher
sumber
1
Saya harus mengakui, saya berharap untuk solusi bawaan, meskipun jawaban Jim sepertinya menyiratkan bahwa itu agak naif dari saya ...
Peter
2

Coba Mail Alert Simple Mailer gratis: https://sourceforge.net/projects/mail-alert/

Ini mendukung server surat SSL / TLS seperti gmail dan mudah dikonfigurasi.

Admin
sumber
Ini mendukung SSL juga.
Roland Pihlakas
0

Satu lagi program mailer baris perintah:

Ini mendukung SSL juga.

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

Utilitas Win paling sederhana yang saya temukan dan gunakan di lingkungan produksi. Dapat dijalankan sendiri, tanpa instalasi atau konfigurasi yang diamanatkan. Mendukung non-TLS dan TLS. Dan memiliki debugger, yang terkadang bermanfaat.

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

access_granted
sumber