SMSCODES = {
    'Aliant': '@chat.wirefree.ca',
    'Alltel': '@message.alltel.com',
    'Ameritech': '@paging.acswireless.com',
    'AT&T': '@txt.att.net',
    'AU by KDDI': '@ezweb.ne.jp',
    'BeeLine GSM': '@sms.beemail.ru',
    'Bell Mobility Canada': '@txt.bellmobility.ca',
    'Bellsouth': '@bellsouth.cl',
    'BellSouth Mobility': '@blsdcs.net',
    'Blue Sky Frog': '@blueskyfrog.com',
    'Boost': '@myboostmobile.com',
    'Cellular South': '@csouth1.com',
    'CellularOne': '@mobile.celloneusa.com',
    'CellularOne West': '@mycellone.com',
    'Cincinnati Bell': '@gocbw.com',
    'Claro': '@clarotorpedo.com.br',
    'Comviq': '@sms.comviq.se',
    'Dutchtone/Orange-NL': '@sms.orange.nl',
    'Edge Wireless': '@sms.edgewireless.com',
    'EinsteinPCS / Airadigm Communications': '@einsteinsms.com',
    'EPlus': '@smsmail.eplus.de',
    'Fido Canada': '@fido.ca',
    'Golden Telecom': '@sms.goldentele.com',
    'Idea Cellular': '@ideacellular.net',
    'Kyivstar': '@sms.kyivstar.net',
    'LMT': '@sms.lmt.lv',
    'Manitoba Telecom Systems': '@text.mtsmobility.com',
    'Meteor': '@sms.mymeteor.ie',
    'Metro PCS': '@mymetropcs.com',
    'Metrocall Pager': '@page.metrocall.com',
    'MobileOne': '@m1.com.sg',
    'Mobilfone': '@page.mobilfone.com',
    'Mobility Bermuda': '@ml.bm',
    'Netcom': '@sms.netcom.no',
    'Nextel': '@messaging.nextel.com',
    'NPI Wireless': '@npiwireless.com',
    'O2': '@o2.co.uk',
    'O2 M-mail': '@mmail.co.uk',
    'Optus': '@optusmobile.com.au',
    'Orange': '@orange.net',
    'Oskar': '@mujoskar.cz',
    'Pagenet': '@pagenet.net',
    'PCS Rogers': '@pcs.rogers.com',
    'Personal Communication': '@pcom.ru',
    'Plus GSM Poland': '@text.plusgsm.pl',
    'Powertel': '@ptel.net',
    'Primtel': '@sms.primtel.ru',
    'PSC Wireless': '@sms.pscel.com',
    'Qualcomm': '@pager.qualcomm.com',
    'Qwest': '@qwestmp.com',
    'Safaricom': '@safaricomsms.com',
    'Satelindo GSM': '@satelindogsm.com',
    'SCS-900': '@scs-900.ru',
    'Simple Freedom': '@text.simplefreedom.net',
    'Skytel - Alphanumeric': '@skytel.com',
    'Smart Telecom': '@mysmart.mymobile.ph',
    'Southern Linc': '@page.southernlinc.com',
    'Sprint PCS': '@messaging.sprintpcs.com',
    'Sprint PCS - Short Mail': '@sprintpcs.com',
    'SunCom': '@tms.suncom.com',
    'SureWest Communications': '@mobile.surewest.com',
    'SwissCom Mobile': '@bluewin.ch',
    'T-Mobile Germany': '@T-D1-SMS.de',
    'T-Mobile Netherlands': '@gin.nl',
    'T-Mobile UK': '@t-mobile.uk.net',
    'T-Mobile USA (tmail)': '@tmail.com',
    'T-Mobile USA (tmomail)': '@tmomail.net',
    'Tele2 Latvia': '@sms.tele2.lv',
    'Telefonica Movistar': '@movistar.net',
    'Telenor': '@mobilpost.no',
    'Telia Denmark': '@gsm1800.telia.dk',
    'Telus Mobility': '@msg.telus.com',
    'The Phone House': '@sms.phonehouse.de',
    'TIM': '@timnet.com',
    'UMC': '@sms.umc.com.ua',
    'Unicel': '@utext.com',
    'US Cellular': '@email.uscc.net',
    'Verizon Wireless (vtext)': '@vtext.com',
    'Verizon Wireless (airtouchpaging)': '@airtouchpaging.com',
    'Verizon Wireless (myairmail)': '@myairmail.com',
    'Vessotel': '@pager.irkutsk.ru',
    'Virgin Mobile Canada': '@vmobile.ca',
    'Virgin Mobile USA': '@vmobl.com',
    'Vodafone Italy': '@sms.vodafone.it',
    'Vodafone Japan (n)': '@n.vodafone.ne.jp',
    'Vodafone Japan (d)': '@d.vodafone.ne.jp',
    'Vodafone Japan (r)': '@r.vodafone.ne.jp',
    'Vodafone Japan (k)': '@k.vodafone.ne.jp',
    'Vodafone Japan (t)': '@t.vodafone.ne.jp',
    'Vodafone Japan (q)': '@q.vodafone.ne.jp',
    'Vodafone Japan (s)': '@s.vodafone.ne.jp',
    'Vodafone Japan (h)': '@h.vodafone.ne.jp',
    'Vodafone Japan (c)': '@c.vodafone.ne.jp',
    'Vodafone Spain': '@vodafone.es',
    'Vodafone UK': '@vodafone.net',
    'Weblink Wireless': '@airmessage.net',
    'WellCom': '@sms.welcome2well.com',
    'WyndTell': '@wyndtell.com',
}


def sms_email(number, provider):
    """
    >>> print sms_email('1 (312) 375-6536','T-Mobile USA (tmail)')
    print 13123756536@tmail.com
    """
    import re
    if number[0] == '+1':
        number = number[1:]
    elif number[0] == '+':
        number = number[3:]
    elif number[:2] == '00': number = number[3:]
    number = re.sub('[^\d]', '', number)
    return number + SMSCODES[provider]
