home *** CD-ROM | disk | FTP | other *** search
/ synchro.net / synchro.net.tar / synchro.net / Synchronet_Archive / 310IBETA.ZIP / sendmsg.js < prev    next >
Encoding:
Text File  |  2001-11-10  |  1.5 KB  |  61 lines

  1. // sendmsg.js
  2.  
  3. // Send a short message (telegram) to a user on another Synchronet system
  4. // Requires v3.10f or later
  5.  
  6. if(argc>0 && argv[0].indexOf('@')!=-1)
  7.     dest = argv[0];
  8. else if((dest = prompt("User (user@hostname)"))==null)
  9.     exit();
  10. if((hp = dest.indexOf('@'))==-1) {
  11.     alert("Invalid user");
  12.     exit();
  13. }
  14. if((msg = prompt("Message"))==null)
  15.     exit();
  16. host = dest.slice(hp+1);
  17. sock = new Socket();
  18. //sock.debug = true;
  19. do {
  20.     if(!sock.connect(host,25)) {
  21.         alert("Connection to " + host + " failed with error " + sock.last_error);
  22.         break;
  23.     }
  24.  
  25.     if(Number((rsp=sock.recvline()).slice(0,3))!=220) {
  26.         alert("Invalid connection response:\r\n" + rsp);
  27.         break;
  28.     }
  29.     sock.send("HELO "+system.inetaddr+"\r\n");
  30.     if(Number((rsp=sock.recvline()).slice(0,3))!=250) {
  31.         alert("Invalid HELO response: " + rsp);
  32.         break;
  33.     }
  34.     sock.send("SOML FROM: "+user.email+"\r\n");
  35.     if(Number((rsp=sock.recvline()).slice(0,3))!=250) {
  36.         alert("Invalid SOML response: " + rsp);
  37.         break;
  38.     }
  39.     sock.send("RCPT TO: "+dest+"\r\n");
  40.     if(Number((rsp=sock.recvline()).slice(0,3))!=250) {
  41.         alert("Invalid RCPT TO response: " + rsp);
  42.         break;
  43.     }
  44.     sock.send("DATA\r\n");
  45.     if(Number((rsp=sock.recvline()).slice(0,3))!=354) {
  46.         alert("Invalid DATA response: " + rsp);
  47.         break;
  48.     }
  49.     sock.send(msg);
  50.     sock.send("\r\n.\r\n");
  51.     if(Number((rsp=sock.recvline()).slice(0,3))!=250) {
  52.         alert("Invalid end of message response: " + rsp);
  53.         break;
  54.     }
  55.     sock.send("QUIT\r\n");
  56.     print("Message delivered successfully.");
  57.  
  58. } while(0);
  59.  
  60. sock.close();
  61.