Link to home
Start Free TrialLog in
Avatar of xxgenius

asked on

Telnet batch file needed

i need a batch file that will open a telnet conenction and send an email via an smtp server.  for example i want to send an email to via with a short message.  if there is a way to call a seperate text file (like FTP batch files) that holds the body of the email that would be great.
Avatar of nazirahmed
Flag of United Kingdom of Great Britain and Northern Ireland image

try this:

telnet mail.domain.ext 25
MAIL FROM: mail@domain.ext
RCPT TO: mail@otherdomain.ext
Subject:-type subject here- then press enter twice
(the actual message)
hello mail@otherdomain.ext from mail@domain.ext


hope it will help
Avatar of wei2ali

I've tried to create smtp-batch files when making network montoring utilities, but found it cumbersome. Instead, there's a utility called BLAT, which I found useful. Here's the link ( It takes a half hour to get familar with the software, but after that, you can't live without it ;)
Avatar of xxgenius


nazirahmed, thanks but i already know how to telnet and send a message.  what i need is a batch file that run from a script.

wei2ali, i need this to be executed from a script triggered by sendmail.
Here's a piece of code I used in a web-check utility. You don't have to know KiXtart (though you'll definitely gonna love it). The purpose to to show you how to embed/pass parameters to Blat.exe when scripting

Function SendMail($subj, $msg, Optional $ExchangeServer)
      $msg = "_test_"
      $subj = '"Test, ignore please"'
      $Sender = "somebody@@mysite.local"
      $rcp1 = "somebody1@@mysite.local"
      $rcp2 = "somebody2@@mysite.local"      
      $ExchangeServer = "Your_server_NETBIOS_NAME or IP"
      shell '%comspec% /c Blat $msg -f $Sender -t $rcp1,$rcp2 -server $ExchangeServer -s $subj -q'

You can pass parameters to the function from script, or simply get familar with the shel command line swithces of Blat. I'll try to explain this line closer:
      shell '%comspec% /c Blat $msg -f $Sender -t $rcp1,$rcp2,$rcp3 -server $ExchangeServer -s $subj -q'

Let's start with "Blat $msg". I suppose you've got regular messages to send depending on the output of your script, $msg points to the message you want to send, it can be a file or standard output from the script.
   -f: server
   -t: recepient(s)
   -server: self-explanary
   -s: subject (Always needs to be in quotation marks!)
   -q: No error message output

cant you copy code to a script file and run it through batch file.or simply copy the code into a file named yourscript.txt and run
ftp -s:yourscript.txt
Avatar of nazirahmed
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
You might try Telnet Scripting Tool
It is simple and I think does what you are looking for.
I have almost the same problem as xxgenius.
This is the situation:
I have to test +- 40 servers on mail relay. So my idea was to send a mail through each server with a batch script to myself. My idea was the following:

telnet <server A> 25
DATA: test mail to server A

telnet <server B> 25
DATA: test mail to server B

This way i know which server relays mail and which server doesn't (if I receive a mail with "test mail to server B" I know that server B relays).

When i follow these steps manualy, it works perfectly but when I try to do this with the script he only logs in to the first server but doesn't give the HELO command (and all the commands after HELO). When I type the rest of the commands manualy (HELO, MAIL FROM, etc) and type quit, the script logs me in on the next server. So he only does the telnet <server A/B> 25 command.

I've allready tried the links that you guys posted, but I can't figure out how those programs work.
I have the same problem. I need to issue an ETRN command to some of our mail servers every half our or so.

telnet 25

Its very simple, I don't even need to login. But I don't seem to be able to run a telnet command from a batch file, that I could simply schedule.

Any (simple) ideas, this will be running on a server, so I really don't want to add any software to a stable machine.

Les Elton,
Network Admin., ABC Recycling Ltd
i solved my problem using a combination of blat ( ) and a batch script.

it basicly looked like this:
blat <mail addresses, server_1 address, etc, etc>
blat <mail addresses, server_2 address, etc, etc>

so if blat knows the command that you want to use, it's easy to solve it.

i'll see if i can upload my script somewhere :)
Yes, you can do a telnet script, as simple as ftp scripting.
If you are using *nix, try:
sleep 2;
sleep 1;
sleep 1;
echo exit
) | telnet
I'm also looking to execute telnet commands from the wondows batch. if you have any ideas, let me know.
On Windows, using Teraterm pro you can easily do telnet command batch scripting

Just fire it up from the CMD:

ttpmacro.exe YOURSCRIPT.TXT


connect ''
UsernamePrompt = 'Login:'
Username = 'admin'
PasswordPrompt = 'Password:'
loginpass = 'YOURPASSWORD'
wait   UsernamePrompt
sendln Username
wait   PasswordPrompt
sendln loginpass
wait '>'
pause 5
sendln 'Yourfirst Telnet Command'
sendln 'Your second telnet command'
sendln 'Any number of telnet commands on each line'
sendln '/'
sendln 'quit'