elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  python: email list from sql query
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: python: email list from sql query  (Leído 3,277 veces)
Echizen

Desconectado Desconectado

Mensajes: 13


Ver Perfil
python: email list from sql query
« en: 14 Junio 2016, 17:38 pm »

Buenas tardes, tengo un script en python que lo utilizo para mandar mail.

A dicho escript lo quiero modificar para que consulte a una base de datos una lista de correos electronicos y mande el mail a los mismos...

El problema es que no se como conformar esa lista de emails para que las acepte el sendmail

Código
  1. # Import smtplib to provide email functions
  2. import smtplib
  3. import sys
  4. import mysql.connector
  5.  
  6. # Import the email modules
  7. from email.mime.multipart import MIMEMultipart
  8. from email.mime.text import MIMEText
  9.  
  10. # Create MySQL conector
  11. Conexion = mysql.connector.connect(user='pepito',password='pepitopepe',
  12.                              host='10.11.12.13',
  13.                              database='HELLO')
  14.  
  15. # Define cursor
  16. cursor=Conexion.cursor()
  17.  
  18. # Create a MySQL Query
  19. # ARGV[2] level of issue elevation
  20. cursor.execute("select email from emails where nivel= '%s'" % sys.argv[2] )
  21.  
  22. # Define email addresses to use
  23. addr_to = cursor.fetchone()
  24. #addr_to   = ['pepito1@tepelandia.com', 'pepito2@pepelandia.com']
  25. addr_from = 'Check@pepelandia.com'
  26.  
  27. # Define SMTP email server details
  28. smtp_server = 'smartrelay.pepelandia.com'
  29.  
  30. # Construct email
  31. msg = MIMEMultipart('alternative')
  32. msg['To'] = ", ".join(addr_to)
  33. msg['From'] = ", ".join(addr_from)
  34. msg['Subject'] = 'Alerta'
  35.  
  36. # Open a plain text file for reading.  For this example, assume that
  37. # the text file contains only ASCII characters.
  38. # ARGV[1] html file to send
  39. fp = open(sys.argv[1], 'rb')
  40.  
  41.  
  42. # Create a text/plain message
  43. msg = MIMEText(fp.read(), 'html')
  44. fp.close()
  45.  
  46.  
  47.  
  48. # Send the message via an SMTP server
  49. s = smtplib.SMTP(smtp_server)
  50. s.sendmail(addr_from, addr_to, msg.as_string())
  51. s.quit()
  52.  


Al ejecutar el cofigo...
Código
  1. Traceback (most recent call last):
  2.  File "SendMail.py", line 48, in <module>
  3.    s.sendmail(addr_from, addr_to, msg.as_string())
  4.  File "/usr/lib64/python2.7/smtplib.py", line 742, in sendmail
  5.    raise SMTPRecipientsRefused(senderrs)
  6. smtplib.SMTPRecipientsRefused: {u'pepito1@pepelandia.com': (550, '#5.1.0 Address rejected.')}

cuando separo el codigo y solo me quedo con la consulta de la DB y veo como me devuelve la lisla de emails...

Código
  1. # Create MySQL conector
  2. Conexion = mysql.connector.connect(user='pepito',password='pepitopepe',
  3.                              host='10.11.12.13',
  4.                              database='HELLO')
  5.  
  6. # Define cursor
  7. cursor=Conexion.cursor()
  8.  
  9. # Create a MySQL Query
  10. cursor.execute("select email from emails where nivel= '%s'" % sys.argv[1] )
  11.  
  12.  
  13. # Define email addresses to use
  14. addr_to = cursor.fetchall()
  15.  
  16. for row in addr_to:
  17.  print(addr_to)
  18.  

resultado de la consulta:
Código
  1. # python get_list.py 1   # el 1 es el parametro que paso para la consulta de SQL
  2. [(u'pepito1@pepelandia.com',), (u'pepito2@pepelandia.com',)]
  3. [(u'pepito1@pepelandia.com',), (u'pepito2@pepelandia.com',)]

evidentemente la lista que estoy pasando esta mal conformada, pero no encuentro como hacer que la lista que arma la consulta quede con los mails solamente separada por comas.

alguien tiene alguna idea?


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: python: email list from sql query
« Respuesta #1 en: 16 Junio 2016, 06:42 am »

no uso sql así que ni idea de las consultas, ahora lo que te devuelve es:
Citar
# python get_list.py 1   # el 1 es el parametro que paso para la consulta de SQL
[(u'pepito1@pepelandia.com',), (u'pepito2@pepelandia.com',)]
[(u'pepito1@pepelandia.com',), (u'pepito2@pepelandia.com',)]
¿el problema es la u' del inicio? si es así tomá la cadena a partir del 2 caracter, perdón si no es lo que preguntas.


En línea

Echizen

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: python: email list from sql query
« Respuesta #2 en: 21 Junio 2016, 14:58 pm »

En realidad el problema son todos los caracteres que no conforman el correo electronico.

Yo necesito obtener una lista de correos separados por comas y lo que me devuelve python es una lista junto con otros caracteres que no forman parte del mail propiamente dicho.
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: python: email list from sql query
« Respuesta #3 en: 24 Junio 2016, 09:19 am »

perdón por la demora, instale mysql para probar lo que hace, y el problema que encontré está en la versión de pyhton, evidentemente como estás usando 2.x no toma las cadenas directamente como unicode(cosa que python 3 si hace), por eso te agrega u`por ejemplo. Así que tendrías que agregarle el code utf -8, algo que en mi caso no sucede porque hace mucho que solo uso 3.x.
En línea

Echizen

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: python: email list from sql query
« Respuesta #4 en: 2 Julio 2016, 03:03 am »

perdón por la demora, instale mysql para probar lo que hace, y el problema que encontré está en la versión de pyhton, evidentemente como estás usando 2.x no toma las cadenas directamente como unicode(cosa que python 3 si hace), por eso te agrega u`por ejemplo. Así que tendrías que agregarle el code utf -8, algo que en mi caso no sucede porque hace mucho que solo uso 3.x.

muchas gracias por la respuesta!,

ya veré de migrar a python 3.0 y hacer las pruebas.

Saludso
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python]Filtro de Email List
Scripting
word93 0 2,610 Último mensaje 11 Agosto 2010, 00:51 am
por word93
Duda con List.list en programa
Programación Visual Basic
b_rabbit10 2 1,804 Último mensaje 17 Septiembre 2012, 04:47 am
por b_rabbit10
corporate email - email corporativo , alternativas a Gmail, Outlook y Yahoo
Desarrollo Web
Graphixx 0 3,528 Último mensaje 20 Diciembre 2014, 22:40 pm
por Graphixx
Mostrar List al pulsar en un elemento de otra List en AWT
Java
kikian94 4 2,009 Último mensaje 28 Marzo 2015, 17:33 pm
por Usuario Invitado
Ejericio python 1: valdir usuario contraseña i email
Scripting
xiquipython 1 1,705 Último mensaje 8 Febrero 2019, 14:32 pm
por xiquipython
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines