PDA

Ver la Versión Completa : Problemas al enviar Email


BuenaOnda
05-05-2007, 07:23:51
Hola amigos del foro:

Les agradeceria mucho que me ayudaran a resolver un problema que tengo, les cuento necesito mandar un email y probado con muchos componentes(Indy,Fassnet) y ninguno ha solucionado mi problema.. a lo mejor proporciono mal los datos como : host, usuario,etc..

por ejemplo componentes Indy


//En el caso de un servidor GMAIL
IDSMTP1:=TIDSMTP.Create(nil);
IdSMTP1.AuthenticationType :=atLogin;
IdSMTP1.UserNAME := micuenta@gmail.com; //me imagino que es la misma
//que la de mi correo gmail

IdSMTP1.Password := 123456; //me imagino que es el mismo
//que la de mi correo gmail
IdSMTP1.Host := smtp.gmail.com;
IdSMTP1.Port := 25;

with Mensaje do
begin
Body.Add(CUERPO);
From.Text := micuenta@gmail.com
Recipients.EMailAddresses := miamigo@hotmail.com
Subject := 'para probar';
Priority := TIdMessagePriority(mpHighest);//prioridad del mensaje
CCList.EMailAddresses := '';
BccList.EMailAddresses := '';
TIdAttachment.Create(Mensaje.MessageParts,adjunto);
end; //configuracion server smtp

with idsmtp1 do
begin
try
Connect;
try
// Envio el mensaje.
Send(Mensaje);
finally
Disconnect;
end;
// MessageDlg('Enviado Correctamente', mtInformation, [mbOK], 0);
except
// Capturo algunas excepciones que pueden ocurrir
ON E: EIdProtocolReplyError do begin
MessageDlg('No se ha podido enviar el email.' + #13 +
'Incorrecto el email o el usuario o la password.', mtError, [mbOK], 0);
end;
on E: EFOpenError do begin
MessageDlg('No se ha podido enviar el email.' + #13 +
'Fichero Adjunto desconocido o erróneo.', mtError, [mbOK], 0);
end;
on E: EIdSocketError do begin
MessageDlg('No se ha podido enviar el email.'+ #13 +
'Host desconocido o incorrecto.', mtError, [mbOK], 0);
end
else begin
MessageDlg('Fallo en el envio de email', mtError, [mbOK], 0);
end;
end;
end;


tambien lo intente con un correo hotmail y tuve el mismo problema :(

muchas gracias por su valiosa ayuda...

droguerman
05-05-2007, 15:21:07
bueno no he llegado a usar componentes Indy, pero si sé que si envias un mail solo con la data no es procesado por gmail o hotmail, necesitas añadir a tu mensaje un encabezado parecido a este:

From: "TU Nombre" <tucorreo@tuserver>
Return-Path: "direccion retorno" <tucorreo@tuserver>
To: "Nombre de tu destino <destino@elserverdestino>"
Subject: el asunto
Date: 2-2-2007
MIME-Version: 1.0
Content-Type: text/html;
format=flowed;
charset="iso-8859-1;"
reply-type=original
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
<aqui hay que darle dos enters>
<aqui viene tu mensaje>

ahora a mi solo me ha funcionado llegando como spam pero llega, revisa si existe alguna forma de añadir encabezados a tu correo

dec
05-05-2007, 16:38:26
Hola,

También puede ser que sea menester usar de cierto modo el protocolo SSL, que es el que usa Gmail. Aquí tienes un ejemplo del compañero Román (http://www.clubdelphi.com/foros/showthread.php?t=40611).

basti
05-05-2007, 16:43:24
Además de lo que dice dec, tienes que cambiar el puerto del SMTP, en Gmail es el 465.

BuenaOnda
05-05-2007, 20:56:36
gracias por su ayuda, disculpen que siempre los este molestando..:D

BuenaOnda
05-05-2007, 21:51:59
el ejemplo del amigo roman se ve muy bueno, pero me olvide de decirles, que estoy utilizando delphi 7, por lo que hay algunos propiedades que no poseen la version de los indy para delphi 7, lo que produce errores...jijiji..

muchas gracias..:D

dec
05-05-2007, 22:39:21
Hola,

Tienes la opción de instalar la versión 10 de los componentes Indy (http://www.indyproject.org/index.en.aspx), pero, con la versión 9 (conque cuentas en Delphi 7) también es posible enviar correos utilizando el SMTP de GMail con tu propia cuenta de usuario. El ejemplo que adjunto necesita también de las librerías que menciona Román anteriormente. Todas las propiedades de los componentes implicados son las que traen estos por defecto, excepto las que he cambiado en el propio código fuente.

marcial
25-07-2012, 10:59:48
El Archivo ZIP está dañado. ¿Sería posible sustituirlo por el correcto pues me sería de muchisima ayuda?
Gracias
Marcial

Casimiro Notevi
25-07-2012, 11:25:09
Hola, lo acabo de probar y funciona bien, ¿qué problema tienes?

roman
25-07-2012, 17:50:16
Yo también lo puedo abrir sin problemas usando IZarc y desde Firefox.

// Saludos

marcial
25-07-2012, 22:46:21
Pues Ejemplo.dpr Ejemplo.res y Limpiar.bat parece ser que están dañados
Luego, en el directorio frm, el UfrmPrincipal.dfm tampoco lo descomprime
Este es el mensaje que me da el winrar.

! C:\ADAROS\ProgramasAuxiliares\SSL\Enviar correo con SMTP de Gmail (con Indy 9).zip: El archivo está dañado
! C:\ADAROS\ProgramasAuxiliares\SSL\Enviar correo con SMTP de Gmail (con Indy 9).zip: El archivo está dañado

Gracias

roman
25-07-2012, 22:55:14
Yo veo bien todos los archivos. ¿Con cual navegador estás descargando el zip? ¿Has probado usar IZarc en lugar de WinRar?

// Saludos

Casimiro Notevi
25-07-2012, 23:11:07
Lo he descargado otra vez, lo he descomprimido, he abierto cada fichero del mismo y lo he vuelto a comprimir, ahora en formato .rar

Lo he puesto aquí (http://db.tt/SKv0K3Zm), por si quieres probar si te funciona.

Neeruu
26-07-2012, 00:13:02
Hola a todos...


También puede ser que sea menester usar de cierto modo el protocolo SSL, que es el que usa Gmail. Aquí tienes un ejemplo del compañero Román (http://www.clubdelphi.com/foros/showthread.php?t=40611).

Para mandar email con gmail se necesita enviarlos con seguridad ssl... por eso también cambia el puerto de 25 a 465.
Con buscar las dll y ponerlas en la misma carpeta que el ejecutable ya esta...

En el create de tu formulario agregas.

procedure TFrmEMail.FormCreate(Sender: TObject);
begin
IdSSLOpenSSLHeaders.Load;
end;

y agregas la Unit: IdSSLOpenSSLHeaders.

Ahora algunas dolores de cabezas que puedes ahorrar (Por supuesto, todos en la maquina del cliente, porque en la propia siempre anda todo.... :rolleyes:)

1 - Si no te se conecta, prueba bajar el antivirus.
2 - Si no te carga las dll, prueba bajar el antivirus.
3 - Y una vez descartado el antivirus, te comento un caso que no tengo ni ideas porque, pero bueno:

Realice un modulo de envio de mail, con delphi 2010, indy 10.5.5, y las dll de ssl las baje de http://indy.fulgan.com/SSL/, en mi maquina (Windows Seven )envía sin ningún problema.
Ahora en la maquina de mi cliente con Windows server 2008 R2, primero no cargaba las dll por el antivirus, despues que desactive el antivirus seguia sin cargar , entonces busque otras dll en http://www.openssl.org/ y segui el problema, entonces busque otras dll en http://slproweb.com/products/Win32OpenSSL.html... Aclaro que son todas las mismas versión pero descargadas de distintos lugares... incluso algunas pesaban mas que otras...

Cuando logre que cargue las dll, seguí probando, con algunas me daba el error "Connection Time-out Error Socket 10060"...
Y así probando, porque no recuerdo de donde descargue las dll que quedaron, solucione el problema....

Aclaro que, una vez que realice el modulo, lo pase a mi cliente, y todo esto lo realice solo cambiando las dll... con esto quiero decir que no era un error de programación... sino que por alguna razón las mismas dll, con el mismo ejecutable y las misma cuenta de correo, no andan igual en distintas maquinas...

Los dos grandes problemas que tuve son:
1 - No cargaba la dll (Por el antivirus y por la versión de dll) (socket error 10013).
2 - Tiempo de Respuesta agotado (Connection Time-out)

Espero que te sirva....

Saluda Atte Neeruu!!!:)