#--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--* #-- FILE: #-- getYMail.txt #-- DESCRIPTION: #-- This script logs onto a particular Yahoo! Mail #-- account and opens the inbox #-- #-- A description of the process of the script is as #-- follows: #-- 1) Get the Yahoo! Mail Login Form from http://mail.yahoo.com #-- 2) Put the user account information into the form #-- (user-name & password) #-- 3) Reformat the 'input' fields in the form so that #-- they can be used by the curl -d switch #-- (i.e. strip html tags, url encode fields, remove #-- newline characters etc) #-- 4) Post (submit) this information to the Form's target #-- and save any cookies and headers which the server #-- sends. Also follow any redirects which the server #-- specifies. #-- 5) Get the final Yahoo! Mail home-page location by looking at #-- the final redirection instruction sent by the server #-- 6) Get the Yahoo! Mail home-page hostname. #-- 7) Get the url of the Yahoo! Mail 'Inbox' from the mail #-- home-page html. #-- #-- #-- NOTES: #-- This script was based on the composeYMail script #-- #-- The script needs to overcome several devices used #-- by yahoo. #-- a) The use of cookies #-- b) The use of automatic redirects of the web-client #-- (using the LOCATION http header field) #-- c) The use of ssl to encrypt the logon process #-- d) The use of hidden fields with random numbers within #-- the Yahoo! Mail Log-in Form to discourage automatic logins #-- #-- These things can all be overcome because of the #-- capabilities of the 'curl' non-interactive web client. #-- #-- This script has only been used within the 'cygwin' #-- unix emulating bash shell running on WinMe. #-- IDEA: #-- It should not be necessary to log-in to yahoo #-- every time. The headers file (containing the cookies) #-- and the relevant urls should be sufficient. #-- #-- The script uses gnu grep which has a -P switch #-- This allows Perl regular expressions to be used. #-- With other greps the -E switch may work #-- #-- NOTE TO YAHOO ENGINEERS: #-- This script was not written out of malicious-ness #-- towards yahoo but because I am not able to get #-- a credit card since I dont have a job currently #-- and therefor I am not able to pay for a 'premium' #-- package which includes pop forwarding of mail. #-- #-- TESTING: #-- #-- DATE: #-- june 02 #-- AUTHOR: mj bishop (matth3wbishop@yahoo.com) #-- #--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--* sTargetUrl="" #-- The initial target of the login form sYahooMailHomeUrl="" #-- The final url of the Yahoo! Mail home page sYahooMailHostName="" #-- Just the host-name of the above. if [ "$1" = "" ] then echo " usage: getYMail password password is the Yahoo! Mail Account user password for mail-box which you wish to access " exit 1; else sUserPassword="$1" fi #-- Extract the form fields from the html #-- #-- A user progress message #-- echo " -------------------------------------------------- STEP 1 (of 4) Extracting the HTML login form from the Yahoo! Mail site [http://mail.yahoo.com] -------------------------------------------------- " curl mail.yahoo.com \ | sed -n '/