A ver si esto te ayuda:

>>> from email.mime.multipart import MIMEMultipart
>>> msg = MIMEMultipart()
>>> msg['To'] = 'lalala'
>>> p = msg['To','lololo']
Traceback (most recent call last):
  File "<stdin>", line 1, in 
<module>                                                                                                                                              
 
  File "/usr/lib/python2.7/email/message.py", line 294, in 
__getitem__                                                                                                             
 
    return 
self.get(name)                                                                                                                                                          
 
  File "/usr/lib/python2.7/email/message.py", line 360, in 
get                                                                                                                     
 
    name = 
name.lower()                                                                                                                                                            
 
AttributeError: 'tuple' object has no attribute 
'lower'                                                                                                                            
 
>>>                                 


Ese  msg['To', bcc] que haces en smtpserver.sendmail(msg['From'], msg['To', 
bcc], msg.as_string()) no es correcto... no he usado esto nunca, pero quizás si 
creas un array con las dos direcciones funcione. Igual esto también te sirve:

http://stackoverflow.com/questions/1546367/python-how-to-send-mail-with-to-cc-and-bcc

Un saludo.



________________________________
 De: Nicolas lino <[email protected]>
Para: [email protected] 
Enviado: Miércoles 26 de septiembre de 2012 19:18
Asunto: [Python-es] Problema con smtplib y bcc
 

Hola, estoy trabajando con un spammer para mi empresa, que manda las facturas 
automaticamente, como necesitaria una copia de todos los mails enviados se me 
ocurrio enviar con una copia  bcc. Pero no hay forma de hacerlo solucionar.

El codigo si no incluyo el bcc funciona barbaro, busque bastante info, y lo que 
esta dando vueltas en internet dice que lo aga de esta manera.

  bcc = '[email protected]'

        x = 0
        TXT = cfg.get('msg','texto')

        for x in rows:
                TUPULA = (x)
                TO = TUPULA[1]
                TO1 = TUPULA[2]
                TO2 = TUPULA[3]
                TO3 = TUPULA[4]
                TO4 = TUPULA[5]
                TO5 = TUPULA[6]
                CL = TUPULA[0]
                CLI = ("^%s\s-*" % (CL))

                for X in MATCH:
                         if re.match(CLI, X):
                                FAC = X
                if FAC != "":
                        msg = MIMEMultipart()
                        msg['Subject'] = cfg.get('msg','subject')
                        msg['From'] = cfg.get('msg','from')
                        msg['To'] = TO

                        msg.preamble = 'Multipart massage.\n'

                        part = MIMEText("%s" % (TXT))
                        msg.attach(part)


                        part = MIMEApplication(open(MT+""+FAC ,"rb").read())
                        part.add_header('Content-Disposition', 'attachment', 
filename="%s" % (FAC))
                        msg.attach(part)

                        smtpserver.sendmail(msg['From'], msg['To', 
bcc], msg.as_string())  ## si saco el bcc funciona. Pero necesito las copias.
 
                        print 'done! Envio a %s' % (TO)

El error es:

Conexion con mysql establecida
Cursor mysql creado
Conexion con server SMTP establecida
listado de facturas ok
Traceback (most recent call last):
  File "menuviejo.py", line 31, in <module>
    mailcompleto.ENV()
  File "/home/oka/mailcompleto.py", line 89, in ENV
    smtpserver.sendmail(msg['From'], msg['To',bcc], msg.as_string())
  File "/usr/lib/python2.6/email/message.py", line 292, in __getitem__
    return self.get(name)
  File "/usr/lib/python2.6/email/message.py", line 358, in get
    name = name.lower()
AttributeError: 'tuple' object has no attribute 'lower'

menuviejo.py es un mini menu de pruebas que estoy usando, mailcompleto.py es 
todo el modulo de envio de mails. ENV es el nombre de la funcion de envio de 
mails.

Gracias y saludos.
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a