`emailrelay-check-ipaddress.js `_ ---------------------------------------------------------------- .. code:: javascript // // SPDX-FileCopyrightText: 2026 Graeme Walker // SPDX-License-Identifier: FSFAP // // Copyright (c) 2026 Graeme Walker // // Copying and distribution of this file, with or without modification, // are permitted in any medium without royalty provided the copyright // notice and this notice are preserved. This file is offered as-is, // without any warranty. // === // // emailrelay-check-ipaddress.js // // An example E-MailRelay filter script for Windows that // verifies the submitting client's IP address. The IP // address is read from the envelope file. Invalid IP // addresses are rejected by deleting the two message // files and exiting with the special exit code of 100. // Note that this checks the IP address very late in the // submission process; a firewall or DNSBL check might // work better. // try { var content = WScript.Arguments(0) ; var envelope = WScript.Arguments(1) ; var fs = WScript.CreateObject( "Scripting.FileSystemObject" ) ; var ts = fs.OpenTextFile( envelope , 1 , false ) ; var txt = ts.ReadAll() ; ts.Close() ; var re = new RegExp( "X-MailRelay-Client: (\\S*)" , "m" ) ; var ip = txt.match(re)[1] ; var ok = ip === "1.1.1.1" ; /// edit here if( ok ) { WScript.Quit( 0 ) ; } else { WScript.StdOut.WriteLine( "<>" ) ; fs.DeleteFile( envelope ) ; fs.DeleteFile( content ) ; WScript.Quit( 100 ) ; } } catch( e ) { // report errors using the special <<...>> markers WScript.StdOut.WriteLine( "<>" ) ; WScript.StdOut.WriteLine( "<<" + e + ">>" ) ; WScript.Quit( 1 ) ; } .. _../examples/emailrelay-check-ipaddress.js: emailrelay-check-ipaddress_js.html