This will be a remote-controled browser style bot (think FriendBlasterPro or TellyAdder). It will be split up into two panels - the main panel which shows the browser window and a smaller panel to the left which houses the controls.
In the controls panel, there will be a place in the UI to browse for a list of usernames and passwords for EACH email service in the following format - username:password. There will be radio buttons to indicate if the user wants to use gmail, yahoo mail, or alternate between (the most common).
Next, there will be a place to upload a text list of emails to send to. This might be thousands of emails long, the program should be able to handle that.
Next there will be a place to enter a range of numbers from 0-10 which will indicate how many emails will be placed in the bcc field of each email.
Next, there will be a place to enter a Subject Line for the email, the body of the email, and (optionally) browse for an attachment.
Then, there will be a place to specify a time delay in seconds (user will enter a range and the program will choose random times for each delay within that range) and a place to (optionally) upload a list of proxies and specify the time between switching proxies.
Lastly, there will be a "Start Sending" button.
The program will navigate to the gmail interface and login with the first gmail username:pass combination in the list. It will fill in the "TO" field with the first email in the "Emails to send to" list. It will fill in the bcc field with the next emails on the list, in the quantity specified. It will fill in the subject line and body, and attach the file specified, if there was one. It will then log out of that gmail.
If there is a time-delay set, it will wait for the random seconds chosen.
It will then navigate to the yahoo mail interface and complete the process there (moving it's way down the send to list), then logout. It will wait the time-delay (if specified) and then go to the next gmail on the list and start again.
NOTE - the above alternating takes place only if alternating is specified. If only gmail or yahoo is specified, it keeps going on that one kind of interface.
The program should have the ability to skip and move on if it encounters a bad proxy or bad email, so that it doesn't get hung up, and it should generate a log of activities.