Skip to content
⌘ NSIS Forum Archive

connect to SMTP port on remote name/ip, return 1 or 0

9 posts

shaunb#

connect to SMTP port on remote name/ip, return 1 or 0

I've read and searched the forums, and online, I can't seem to find a simple enough win32 command line port scanning tool, that I could nsexec and get the output to see if port 25 is open on the remote mailserver (I need to verify a user entered SMTP mailserver ip/name)

I've tried the following function to no avail, it just returns -1

Are you a developer who uses NSIS to distribute your application? Are you a Winamp plug-in developer who wants to use NSIS to distribute your plug-in? Have suggestions for other people like you? This is the place.


any help would be useful, thanks
shaunb#
hm, I was just playing about with windows telnet just now hehe, I guess I could exec to stack and then check the result, but hmm, each mailserver responds with a slightly different welcome string.

pinging it wouldnt suffice as it might be firewalled or whatever. blarg
nandhp#
Telnet is a Win32 GUI application in 95/98/ME/NT so this approach won't work on those versions. If you need something more reliable, you might want to look for a better solution.
OldGrumpy#
nandhp, I wasn't exactly serious, I was just pointing out a slightly faulty logical chain 😉 Of course it would be better to just write a plugin that uses the winsock interface ot connect to a specified server and port 🙂
shaunb#
hmm, not really time to write my own plugin, if I had to write anything it'd be a custom console application that did the socket task. hmm
shaunb#
Looks like I've come up with a workable solution

using portqry.exe (version 2, available from MS's site)

firstly I nsexec a batch file that wraps the portquery.exe and provides one parameter %1 , to pass in the $CFMAILSERVER (I require to verify a coldfusion server default mailserver), anyway , using the errorlevel function of dos I can then check the exit code of portqry, and output either success or failed to my 'results file' on c:\, which I then use NSIS to read, chop a couple of bytes off the end, and use to check if the mail server verified ok!

my code is attached as its too long

edit: actually I can't find where to attach it so if anyone wants the code just send me a private message! doh!

🙂 I hope it'll help anyone else trying to do the same task.

The end results work quite well

(for reference)