11

I have a Windows 2003 R2 server and I want to send an email from the command line. This server does not have the SMTP service configured. Is there a one liner that will let me send an email? My specific use case at the moment is to send an email when a performance alert is triggered, but it would be useful in general.

I'm hoping for something like

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

Update: I would much prefer a solution that does not involve installing 3rd party software.

2
  • Utilities like blat and sendemail don't require installation. They're both freestanding exe files. Feb 5, 2010 at 22:26
  • I guess I have to accept that I need to at the very least copy an exe (either blat or powershell) to each machine. If that's the case, then blat is very easy to use. Thanks. I still wonder why MS left this feature out, considering how many other less useful ones they put in to the standard distro.
    – Peter
    Feb 8, 2010 at 17:55

6 Answers 6

15

I'd try blat. You could write a vbscript but there is no built in executable to send mail

3
  • seconding blat. It can be a bit picky about passing parameters directly from the command line, but once you nail it, does exactly what the OP needs. Feb 5, 2010 at 23:51
  • I've been using blat for years with great success. However, If I was writing in powershell, I'd switch.
    – uSlackr
    Feb 8, 2010 at 19:29
  • Does blat able to work as send mail path for PHP on Windows?
    – SaidbakR
    Aug 14, 2014 at 22:02
14

Would you consider powershell rather than cmd.exe? If so, sending mail is built in:

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

To make a one liner, save the following to a powershell script file (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)

(make sure to change the smtpserver to be your real one)

Then you can call it using:

powershell.exe c:\path\to\sendmail.ps1 "[email protected]" "[email protected]" "title" "body"
2
  • 1
    powershell would also have to be installed, otherwise I would have prefered it over vbscript.
    – Jim B
    Feb 5, 2010 at 23:48
  • Nice answer. Just one minor change, the arguments need to be single quotes.
    – Brain2000
    Jan 21, 2015 at 23:45
6

I've used bmail with great success in the past.

Usage (copied from website)

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)
1
  • 1
    I have to admit, I was hoping for a built in solution, though Jim's answer seems to imply that was a bit naive of me...
    – Peter
    Feb 5, 2010 at 18:49
2

Try free Mail Alert Simple Mailer: https://sourceforge.net/projects/mail-alert/

It supports SSL/TLS mail servers like gmail and its' easy to configure.

1
0

One more command-line mailer program:

It supports SSL too.

0
sendEmail -f %from_addr% -t %to_addr% -u "Subject Line" -m "Message" -s %smtp_server%

The simplest Win utility I found and used in production environment. Standalone executable, without installation or mandated configuration. Supports both non-TLS and TLS. And has a debugger, which is sometimes helpful.

Executable can found here:

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .