Python Email Program
I would suggest putting all the code in main() except for the imports. Then at the bottom, do

if __name__ == '__main__':
    main(sys.argv)


The advantage of structuring your file this way is that you can run the python interpreter and import your code and play with it. If you break it up into multiple routines, you can run each routine by itself to be sure it does the right thing. As it is now, if you try to import the file, half the code will be run immediately and then main() gets run unconditionally at the bottom, so you can't control it easily in the python interpreter.
To translate email_provider to smtp_server, you could do

host = {'GMAIL': "smtp.gmail.com",
        'GOOGLE': "smtp.gmail.com",
        'AOL': "smtp.aol.com",
        'YAHOO': "smtp.mail.yahoo.com",
        'COMCAST': "smtp.comcast.net"}

smtpserver = smtplib.SMTP(host[email_provider.strip('!').upper()], 587)

And you might want to handle the case where the user types an unknown email provider.

try:
    smtpserver = smtplib.SMTP(
          host[email_provider.strip('!').upper()], 587)
except KeyError:
    print("Unknown email provider '%s'" % email_provider)
    sys.exit(1)

Instead of making the user type 'y' to run again every time, you could do something like this:

while True:
    sendto = raw_input("Target address (or just hit ENTER to quit) &gt; ")
    if sendto == '':
        sys.exit(0)
    to = CC = sendto
    ...