Last modified: May 25, 2010
Contents
1 - Summary
2 - Blat installation
3 - Example batch file
1 - Summary
This guide will show how to send emails for system events using blat in
Windows. Blat is an SMTP client used to send email. This has been tested in
Windows NT4, 2000, XP, 2003 and 2008.
2 - Blat installation
Blat can be downloaded at http://blat.sourceforge.net/. Download and then
extract the files to the Windows system32 directory. Open a command prompt and
type the following commands.
These commands will store the configurations in the Windows registry.
HKEY_LOCAL_MACHINE\SOFTWARE\Public Domain\Blat
3 - Example batch file
Here is an example batch file that sends an email. For Windows NT4 it's
slightly different. This batch file also requires the Windows port of the UNIX
date command.
@echo off
set hostname="C:\WINNT\system32\hostname.exe"
%hostname% > %hostname_results%#
for /f "tokens=1" %%x in (%hostname_results%#) do (set host=%%x)
del /f /q # > nul 2>&1
date /t > %date_results%#
for /f "tokens=2" %%x in (%date_results%#) do (set date=%%x)
del /f /q # > nul 2>&1
set month=%date:~0,2%
set day=%date:~3,2%
set year=%date:~8,2%
set current_day=%month%/%day%/%year%
set unix_date="C:\Program Files\System Utilities\bin\date.exe"
%unix_date% > %unix_date_results%#
for /f "tokens=4" %%x in (%unix_date_results%#) do (set unix_date=%%x)
del /f /q # > nul 2>&1
set hour=%unix_date:~0,2%
set minute=%unix_date:~3,2%
set second=%unix_date:~6,2%
set current_time=%hour%:%minute%:%second%
set blat="C:\WINNT\system32\blat.exe"
set recipient="testuser@test.com"
REM set recipient="testuser1@test.com,testuser2@test.com"
set profile="test.com"
set body="This is a test."
set subject="Test sent from %host% [%current_day% %current_time%]"
%blat% -to %recipient% -subject %subject% -body %body% -p %profile% -q > nul 2>&1
exit
This batch file is for Windows 2000, XP, 2003 and 2008. For Windows 2000, you
will need to change the hostname and blat variables to point to
C:\WINNT\system32.
@echo off
set hostname="C:\WINDOWS\system32\hostname.exe"
%hostname% > %hostname_results%#
for /f "tokens=1" %%x in (%hostname_results%#) do (set host=%%x)
del /f /q # > nul 2>&1
set month=%date:~-10,2%
set day=%date:~-7,2%
set year=%date:~-2,2%
set current_day=%month%/%day%/%year%
set hour=%time:~-11,2%
REM put a leading zero for hours before 10 AM
if "%time:~0,1%"==" " set hour=0%hour:~1,1%
set minute=%time:~-8,2%
set second=%time:~-5,2%
set current_time=%hour%:%minute%:%second%
set blat="C:\WINDOWS\system32\blat.exe"
set recipient="testuser@test.com"
REM set recipient="testuser1@test.com,testuser2@test.com"
set profile="test.com"
set body="This is a test."
set subject="Test sent from %host% [%current_day% %current_time%]"
%blat% -to %recipient% -subject %subject% -body %body% -p %profile% -q > nul 2>&1
exit
|