home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------
- ; NOTE: this file provided AS-IS without any warranty by
- ; Performance Designs. Contact the original author
- ; (listed below) if you need more information about
- ; this script.
- ;------------------------------------------------------------
- ; ELM-UNIX.SCR - SCRIPT-file for RFD-Mail to connect to Unix
- ; environments using Elm - ELectronic Mail interface through
- ; a Cisco terminal server to pick a computer of choice.
- ; This script is tailored for the "Islenska menntanetid"
- ; using "Akureyri"-machine - See Alias listings for details.
- ; Author: Bjvrn Davmpsson - snerpa@ismennt.is - Version: 1.20
- ;------------------------------------------------------------
- ;
- ; We begin with the format specifiers to which allow
- ;the script to identify where the MailId, RealName,
- ;and Subject texts are in a newly downloaded letter.
- ;
- Format
- Subject: $SUBJECT$\n
- Subj: $SUBJECT$\n
- From: "$NAME$" <$UID$>\n
- From: ""$NAME$"" <$UID$>\n
- From: $NAME$<$UID$>\n
- From: $UID$ ($NAME$)\n
- From: $UID$ \n
- From: $UID$\n
- Endformat
- ;--------------------------------
- ; Alias definitions
- Alias cisco 'IMnet'
- Alias machine 'akureyri'
- Alias terminal 'Af hvernig'
- Alias prompt ']> '
- Alias elmcmd 'Command:'
- Alias banner1 'Velkomin(n)'
- Alias banner2 'ismennt.is'
- Alias topmenu 'Apalvalmynd: >'
- Alias exit 'Bless'
- ;--------------------------------
- Begin START
- Caption 'Connect'
- ; Check for Cisco prompt
- When %cisco% Goto VJEL
- When 'login: ' Goto USERNAME
- Timeout 8 Goto START
- End
- ;--------------------------------
- Begin VJEL
- ; Select computer
- Transmit %machine%
- Cr
- When 'login: ' Goto USERNAME
- Timeout 30 Goto NO_LOGIN
- End
- ;--------------------------------
- Begin NO_LOGIN
- Timeout 5 Goto GIVE_UP
- End
- ;--------------------------------
- Begin USERNAME
- Transmit $USERNAME
- Cr
- When 'Password:' Goto PASSWORD
- Timeout 50 Goto NO_LOGIN
- End
- ;--------------------------------
- Begin PASSWORD
- Transmit $PASSWORD
- Cr
- When 'login: ' Goto USERNAME
- When 'login incorrect' Goto NO_LOGIN
- ; Check for Welcome banner
- When %banner1% Goto LOGGED_IN
- When %banner2% Goto LOGGED_IN
- ; Check for Terminaltype question
- When %terminal% Goto SEND_TERMTYPE
- Timeout 60 Goto NO_LOGIN
- End
- ;--------------------------------
- Begin LOGGED_IN
- Caption 'Logon OK'
- When %terminal% Goto SEND_TERMTYPE
- When %topmenu% Goto JUMP_TO_SHELL
- Timeout 45 Goto NO_LOGIN
- End
- ;--------------------------------
- Begin SEND_TERMTYPE
- Caption 'VT100'
- ; p = PC terminal (VT100)
- Transmit 'p'
- Cr
- When %topmenu% Goto JUMP_TO_SHELL
- Timeout 45 Goto NO_LOGIN
- End
- ;--------------------------------
- ; Using "Exit to shell" to leave Top Menu
- ; and get to the prompt.
- Begin JUMP_TO_SHELL
- Transmit %exit%
- Cr
- When %prompt% Goto CHECK_FOR_MAIL
- Timeout 10 Goto GIVE_UP
- End
- ;--------------------------------
- Begin CHECK_FOR_MAIL
- Caption 'Checking mailbox'
- Transmit 'elm -Kmz'
- Cr
- When 'no mail' Goto NO_MAIL_WAITING
- When %prompt% Goto NO_MAIL_WAITING
- When 'message' Goto MAIL_WAITING
- Timeout 10 Goto RETRY_JUMP
- End
- ;--------------------------------
- Begin RETRY_JUMP
- Transmit 'elm -Kmz'
- Cr
- When 'no mail' Goto NO_MAIL_WAITING
- When %prompt% Goto NO_MAIL_WAITING
- When 'message' Goto MAIL_WAITING
- Timeout 15 Goto GIVE_UP
- End
- ;--------------------------------
- Begin GIVE_UP
- ; USE = Unknown Script Error ;-)
- Caption 'USE - Check script'
- Hangup
- Exit
- End
- ;--------------------------------
- Begin NO_MAIL_WAITING
- Caption 'No mail'
- If MORE_LETTERS Then SEND_MAIL
- Timeout 5 Goto WAIT_TO_LOG_OFF
- End
- ;--------------------------------
- Begin MAIL_WAITING
- Caption 'You have mail'
- If FETCHING Then START_FETCH
- If MORE_LETTERS Then SEND_MAIL
- Timeout 5 Goto WAIT_TO_LOG_OFF
- End
- ;--------------------------------
- Begin START_FETCH
- When %elmcmd% Goto FETCH_FROM_ELM
- Timeout 15 Goto GIVE_UP
- End
- ;--------------------------------
- Begin FETCH_FROM_ELM
- Transmit 's'
- Transmit $LETTER.FILENAME
- Cr
- When %elmcmd% Goto REQ_DNLOAD
- Timeout 5 Goto WAIT_REQ_DNLOAD
- End
- ;--------------------------------
- Begin WAIT_REQ_DNLOAD
- Transmit ' '
- Cr
- When %elmcmd% Goto REQ_DNLOAD
- Timeout 15 Goto GIVE_UP
- End
- ;--------------------------------
- Begin REQ_DNLOAD
- ; Use Zmodem
- Transmit '!sz '
- Transmit $LETTER.FILENAME
- Cr
- When 'B00' Goto PAUSE_FOR_DNLOAD
- Timeout 15 Goto ABORT_DNLOAD
- End
- ;--------------------------------
- Begin ABORT_DNLOAD
- Control X
- Control X
- Control X
- Control X
- Control X
- Control X
- Control X
- Control C
- When %prompt% Goto CHECK_FOR_MAIL
- When %elmcmd% Goto REQ_DNLOAD
- Timeout 20 Goto CHECK_FOR_MAIL
- End
- ;--------------------------------
- Begin PAUSE_FOR_DNLOAD
- Timeout 1 Goto DNLOAD_LETTER
- End
- ;--------------------------------
- Begin DNLOAD_LETTER
- Download ZMODEM Then DNLOAD_SUCCESS Else GIVE_UP
- End
- ;--------------------------------
- Begin DNLOAD_SUCCESS
- Confirm LETTER.RECEIVED Successful
- Caption 'Mail received'
- When 'sz' Goto SEND_CR
- When %elmcmd% Goto EXIT_ELM
- Timeout 10 Goto SEND_CR
- End
- ;--------------------------------
- Begin SEND_CR
- Cr
- When %elmcmd% Goto EXIT_ELM
- When %prompt% Goto KILL_TEMPFILE
- Timeout 10 Goto EXIT_ELM
- End
- ;--------------------------------
- Begin EXIT_ELM
- Transmit 'q'
- When %prompt% Goto KILL_TEMPFILE
- When 'Delete ' Goto DEL_MSG
- Timeout 10 Goto DEL_MSG
- End
- ;--------------------------------
- ; Elm asks: Delete message(s)?
- Begin DEL_MSG
- Transmit 'y'
- When %prompt% Goto KILL_TEMPFILE
- When 'Keep unread' Goto KEEP_MSG
- When 'Move read' Goto DONT_MOVE
- Timeout 10 Goto EXIT_ELM
- End
- ;--------------------------------
- ; Elm asks: Keep unread message(s) in incoming mailbox?
- Begin KEEP_MSG
- Transmit 'y'
- When %prompt% Goto KILL_TEMPFILE
- When 'Move read' Goto DONT_MOVE
- Timeout 10 Goto KILL_TEMPFILE
- End
- ;--------------------------------
- ; Elm asks: Move read messages to "received" folder?
- Begin DONT_MOVE
- Transmit 'n'
- When %prompt% Goto KILL_TEMPFILE
- Timeout 5 Goto KILL_TEMPFILE
- End
- ;--------------------------------
- ; Kill the tempfile!
- Begin KILL_TEMPFILE
- Transmit 'rm '
- Transmit $LETTER.FILENAME
- Cr
- ; Check if any more mail...
- When %prompt% Goto CHECK_FOR_MAIL
- Timeout 10 Goto WAIT_TO_LOG_OFF
- End
- ;--------------------------------
- Begin SEND_MAIL
- Cr
- When %prompt% Goto REQUEST_UPLOAD_LETTER
- Timeout 15 Goto SEND_MAIL2
- End
- ;--------------------------------
- Begin SEND_MAIL2
- Cr
- When %prompt% Goto REQUEST_UPLOAD_LETTER
- Timeout 15 Goto GIVE_UP
- End
- ;--------------------------------
- ; This is where letters in "Out-Box" are sent.
- ; Start by uploading the body of the message.
- ; Use ZMODEM from the prompt.
- ; Result is either UPLOAD_SUCCESS if it
- ; worked or UPLOAD_FAILURE if we failed
- ;--------------------------------
- ;Let's start ZMODEM (RZ) on the Unix side
- Begin REQUEST_UPLOAD_LETTER
- Transmit 'rz '
- Cr
- When 'B01' Goto WAIT_FOR_UPLOAD
- Timeout 20 Goto GIVE_UP
- End
- ;--------------------------------
- ;RZ is working, just a sec...
- Begin WAIT_FOR_UPLOAD
- Timeout 1 Goto BEGIN_LETTER_UPLOAD
- End
- ;--------------------------------
- Begin BEGIN_LETTER_UPLOAD
- NewLetter
- Upload ZMODEM Then UPLOAD_SUCCESS Else GIVE_UP
- End
- ;--------------------------------
- Begin UPLOAD_SUCCESS
- Caption 'Body sent'
- Cr
- Cr
- When %prompt% Goto SEND_LETTER
- Timeout 8 Goto END_LETTER_UPLOAD
- End
- ;------------------------------------------------------
- Begin END_LETTER_UPLOAD
- Caption 'Upload done'
- Cr
- Cr
- When %prompt% Goto SEND_LETTER
- Timeout 15 Goto END_LETTER_UPLOAD2
- End
- ;------------------------------------------------------
- Begin END_LETTER_UPLOAD2
- Control C
- When %prompt% Goto SEND_LETTER
- Timeout 15 Goto GIVE_UP
- End
- ;--------------------------------
- ; Ok, here the body of the message is in our home-dir
- ; in the temporary file "mail.tmp" and we jump to "elm"
- ; and let elm mail the letter.
- Begin SEND_LETTER
- Caption 'Elm started'
- Transmit 'elm '
- Transmit $LETTER.DEST.USERNAME
- Cr
- Transmit $LETTER.SUBJECT
- Cr
- Transmit $LETTER.CC
- Cr
- Caption 'Including body'
- ; Elm starts Emacs editor which says
- ; "Use Esc-Z to leave editor"
- When 'Esc-Z' Goto INCLUDE_BODY
- Timeout 15 Goto INCLUDE_BODY
- End
- ;--------------------------------
- Begin INCLUDE_BODY
- Control X
- Control I
- Transmit $LETTER.FILENAME
- Cr
- ; Editor acknowledges insert with "skotip inn"
- When 'skoti' Goto EXIT_MAIL
- Timeout 20 Goto EXIT_MAIL
- End
- ;--------------------------------
- Begin EXIT_MAIL
- ;Send ESC-Z to leave editor
- Control [
- Transmit 'Z'
- Cr
- ; Elm asks if to send letter
- When 'f)orget it' Goto SEND_IT
- Timeout 10 Goto SEND_IT
- End
- ;--------------------------------
- Begin SEND_IT
- Transmit 's'
- Cr
- Caption 'Mail sent!'
- Confirm LETTER.SENT Successful
- Transmit 'rm '
- Transmit $LETTER.FILENAME
- Cr
- When %prompt% Goto SEND_MORE_MAIL
- Timeout 15 Goto GIVE_UP
- End
- ;--------------------------------
- Begin SEND_MORE_MAIL
- If MORE_LETTERS Then REQUEST_UPLOAD_LETTER
- Timeout 1 Goto LOG_OFF
- End
- ;--------------------------------
- Begin WAIT_TO_LOG_OFF
- Cr
- When ']> ' Goto LOG_OFF
- Timeout 15 Goto GIVE_UP
- End
- ;--------------------------------
- Begin LOG_OFF
- Transmit 'exit'
- Cr
- Caption 'Logging off'
- When 'NO CAR' Goto BYE_BYE
- When %cisco% Goto LOG_OFF
- When 'Connection closed' Goto BYE_BYE
- When %prompt% Goto LOG_OFF
- CarrierLoss Goto EXIT_PROGRAM
- Timeout 20 Goto GIVE_UP
- End
- ;--------------------------------
- Begin EXIT_PROGRAM
- Caption 'Connection closed'
- Timeout 3 Goto HANGUP_PHONE
- End
- ;--------------------------------
- Begin HANGUP_PHONE
- Hangup
- End
- ;--------------------------------
- Begin BYE_BYE
- Exit
- End
-
-