PDA

Ver la Versión Completa : Se impide enviar email a diferentes dominios


uper
21-05-2015, 17:49:20
buenos dias, estoy tratando de enviar correos con python v2.7 pero de forma general, es decir tengo una cuenta en la empresa y si le envio un correo por ejemplo a yahoo me manda error, lo mas normal es que se autentifique con una cuenta pero no es asi, como se puede lograr enviar emial sin importar a que dominios van

codigo:
# -*- coding: utf8 -*-
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders

def send_mail(send_from, send_to, subject, text, server="localhost"):
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = send_from
#msg['To'] = ', '.join(send_to)
msg['To'] = send_to
msg.attach( MIMEText(text))

files = ['c:/Data/test01.txt','c:/Data/test02.txt']
for f in files:
part = MIMEBase('application', "octet-stream")
part.set_payload( open(f,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' %f)
msg.attach(part)

server = smtplib.SMTP(server)
#server.login('cuentatest@dominiox.com','mipassword')
#Me envia email si son de la misma empresa, si embargo le quito lo comentado server.login me da error: smtplib.SMTPAuthenticationError: (535, '5.7.0 authentication failed')
server.sendmail(send_from, send_to, msg.as_string())
server.close()
print 'Listo.'
send_mail("clientesdom@dominiox.com", "alguien@yahoo.com.mx", "mensaje test", "MENSAJE DE PRUEBA", "www.dominiox.com")


Por ultimo, tambien puede resultar que para enviar correos con una cuenta de yahoo o gmail se pueda configurar por si a caso se usara.
En mi caso me da error en el envio, el mensaje debo suponer es por que no tenemos acceso a enviar con una cuenta de gmail o yahoo pero si podemos incluir esos dominos si tenemos asignada una cuenta de la empresa:

File "C:\Data\envios\sendmail2.py", line 40, in send_mail
server.login('cuentatest@dominiox.com','mipassword')
File "C:\Program Files\Python27\lib\smtplib.py", line 622, in login
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, '5.7.0 authentication failed')

Alguien puede aportar alguna sugerencia
Gracias.

mamcx
22-05-2015, 00:29:39
Cual es la sugerencia? Pues que debes tener las credenciales apropiadas para poder acceder a la cuenta de correo de otra persona. Ningun proveedor de correo da acceso irrestricto a que cualquiera (incluyendo spammers) puedan mandar a nombre de otras personas correos como si nada.

P.D. Para desarrolladores, es mejor usar un servicio especializado de envio de correos, en vez de impersonar a un usuario con un correo personal y/o de empresa, usando por ejemplo:

http://www.mailgun.com/

La otra opcion, usar un servidor local para el envio de correo, es la forma segura de quedar en las listas negras como spammer, asi que la opcion que pongo es la mejor opcion para apps.

Uno solo envia a nombre de otra persona, cuando es realmente ese el caso. Para envio general, se usa un servicio especializado.

uper
25-05-2015, 18:34:59
gracias, seria lo mas recomendable usar un servicio extra pero lo mas adecuado es usar una cuenta propia de la empresa, como un envio comun y simple pero al parecer tiene algo raro el envio con python y desconosco como es esto de los envios a cualquier dominio.