import smtplib
import os
from cPickle import load
import sys
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders


try:
        f=open(os.path.expanduser("~/.gmailpasswd"),"r")
except IOError, (errno, strerror):
        if errno == 2:
                print("""
                        Passwordsdosya bulunamdi
                        asagidakileri izleyin python shell i acip:
                        from cPickle import dump
                        c=["username","password"]
                        f=open("~/.gmailpasswd","wb")
                        dump(c,f)
                        f.close()
                        <Ctrl-D>
                        bunu "~/" sisteme gore degistebilirisizniz linux icindir
                        """)
        else:
                print "Unhandled IO hata"
                raise




cre=load(f)

f.close()


gmailusr=cre[0]
gmailsifre=cre[1]




def mailer(to, subject, txt, flst=[], bcc="", cc="", header=""):
    print "true/false oalrka doner eger yolanmisa true"
    print "yolanicak hersey base64 ile sifreli olmak zorunda octect-stream de hata verir"
    msj=MIMEMultipart()
    msj["From"]=gmailusr
    msj["Subject"]=subject
    try:
        test=to.lower()
        #hata yok ise hala to str dir listeye cevirmemiz lazim
        sendto=[to]
        msj["To"]=to
    except AttributeError:
        sendto=[]
        for x in to:
            sendto.append(x)
            msj.__setitem__("To", x)
    if cc:
        msj["Cc"]=cc
        try:
            test=bcc.lower()
            to.append(bcc)
            msj.__setitem__("Cc", x)
        except AttributeError:
            sendto=[]
            for x in bcc:
                sendto.append(x)
                msj.__setitem__("To", x)
    if bcc:
        # mesaj header degildir smtb deki musterielri secer
        #msj["Cc"]=cc
        try:
            test=cc.lower()
            to.append(cc)
        except AttributeError:
            for x in bcc:
                sendto.append(x)
    if headers:        
        try:
            test=headers.lower()
            headers=[headers]
        except AttributeError:
            pass
        for y in headers:
            m, val=x.split(":", 1)
            msj.__setitem__(m, val)
     msj.attach(MIMEText(text))
    for eklenti in flst:
        bolum1 = MIMEBase('application', 'octet-stream')
        part.set_payload(open(eklenti, "rb").read())
        Encoders.encode('Content-Disposition',
                                  'attachment; filename="%s"' % os.path.basename(eklenti))
        msj.eklenti(bolum1)
    try:
         try:
                mailServer = smtplib.SMTP("smtp.gmail.com", 587)
                mailServer.ehlo()
                mailServer.starttls()
                mailServer.ehlo()
                mailServer.login(gmailusr, gmailsifre)
                mailServer.sendmail(gmailusr, sendto, msj.as_string())
                mailServer.close()
        except:
                return False
        return True