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
Al ejecutar el cofigo...
cuando separo el codigo y solo me quedo con la consulta de la DB y veo como me devuelve la lisla de emails...
resultado de la consulta:
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?
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 (python) [Seleccionar]
# Import smtplib to provide email functions
import smtplib
import sys
import mysql.connector
# Import the email modules
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# Create MySQL conector
Conexion = mysql.connector.connect(user='pepito',password='pepitopepe',
host='10.11.12.13',
database='HELLO')
# Define cursor
cursor=Conexion.cursor()
# Create a MySQL Query
# ARGV[2] level of issue elevation
cursor.execute("select email from emails where nivel= '%s'" % sys.argv[2] )
# Define email addresses to use
addr_to = cursor.fetchone()
#addr_to = ['pepito1@tepelandia.com', 'pepito2@pepelandia.com']
addr_from = 'Check@pepelandia.com'
# Define SMTP email server details
smtp_server = 'smartrelay.pepelandia.com'
# Construct email
msg = MIMEMultipart('alternative')
msg['To'] = ", ".join(addr_to)
msg['From'] = ", ".join(addr_from)
msg['Subject'] = 'Alerta'
# Open a plain text file for reading. For this example, assume that
# the text file contains only ASCII characters.
# ARGV[1] html file to send
fp = open(sys.argv[1], 'rb')
# Create a text/plain message
msg = MIMEText(fp.read(), 'html')
fp.close()
# Send the message via an SMTP server
s = smtplib.SMTP(smtp_server)
s.sendmail(addr_from, addr_to, msg.as_string())
s.quit()
Al ejecutar el cofigo...
Código (python) [Seleccionar]
Traceback (most recent call last):
File "SendMail.py", line 48, in <module>
s.sendmail(addr_from, addr_to, msg.as_string())
File "/usr/lib64/python2.7/smtplib.py", line 742, in sendmail
raise SMTPRecipientsRefused(senderrs)
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 (python) [Seleccionar]
# Create MySQL conector
Conexion = mysql.connector.connect(user='pepito',password='pepitopepe',
host='10.11.12.13',
database='HELLO')
# Define cursor
cursor=Conexion.cursor()
# Create a MySQL Query
cursor.execute("select email from emails where nivel= '%s'" % sys.argv[1] )
# Define email addresses to use
addr_to = cursor.fetchall()
for row in addr_to:
print(addr_to)
resultado de la consulta:
Código (python) [Seleccionar]
# 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',)]
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?