Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   tengo un problema con ServidorSMTP.Connect(10000); (https://www.clubdelphi.com/foros/showthread.php?t=70579)

rackzo 29-10-2010 02:13:18

tengo un problema con ServidorSMTP.Connect(10000);
 
me muetra un error dice ke no hacepta tantos enteros este es el codigo ke utilizo haber si alguien me puede ayudar estoy utilizando delphi 6

procedure TForm1.Button1Click(Sender: TObject);
var ServidorSMTP:TIdSMTP;
var Mailmessage:TIdMessage;
begin
ServidorSMTP:=TIdSMTP.Create(Self);
Mailmessage:=TIdMessage.Create(Self);
with Mailmessage do
begin
Subject:='Prueba?';
Body.Text:='hola soy DELPHI';
from.Address:='correo@gmail.com';
Recipients.EMailAddresses:='correo@gmail.com';
end;
try
ServidorSMTP.Host:='smtp.gmail.com';
ServidorSMTP.Port:=587;
ServidorSMTP.AuthenticationType:=atLogin;
ServidorSMTP.UserId:=correo@gmail.com';
ServidorSMTP.Password:='pasword del correo';
ServidorSMTP.Connect(10000);
try
ServidorSMTP.Send(Mailmessage);
except
on E: Exception do
ShowMessage('Falla al enviar:'+E.Message);
end;
finally
ServidorSMTP.Disconnect;
ServidorSMTP.Free;
Mailmessage.Free;
end;
close;
end;

rackzo 29-10-2010 17:43:05

!!!problemas con smtp.connect(10000);¡¡¡
 
alomejor mi pregunta no kedo vien planteada lo que pasa es ke estoy teniendo problemas al utilizar el smtp.connect(10000); la verdad no se vien como se utiliza soy nuevo programando en delphi por lo general lo ago en .net que fue donde aprendy, bueno siguiendo con el tema no se si tenga que añadir una libreria extra para darle el valor de 10000 al connect ya que cuando escrivo SMTP. me aparece solo la opcion de ponerlos de la siguiente forma SMTP.Connect; no me pide valor o algo por el estilo, en .net el connect(); quiere decir que es un metodo ke recibe algun valor pero en delphi la verdad aun no se les anexo el codigo completo por si tengo un error.


procedure TForm1.Button1Click(Sender: TObject);
var ServidorSMTP:TIdSMTP;
var Mailmessage:TIdMessage;
begin
ServidorSMTP:=TIdSMTP.Create(Self);
Mailmessage:=TIdMessage.Create(Self);
with Mailmessage do
begin
Subject:='Prueba?';
Body.Text:='hola soy DELPHI';
from.Address:='correo@gmail.com';
Recipients.EMailAddresses:='correo@gmail.com';
end;
try
ServidorSMTP.Host:='smtp.gmail.com';
ServidorSMTP.Port:=587;
ServidorSMTP.AuthenticationType:=atLogin;
ServidorSMTP.UserId:='correo@gmail.com';
ServidorSMTP.Password:='contraseña';
ServidorSMTP.Connect(10000);
try
ServidorSMTP.Send(Mailmessage);
except
on E: Exception do
ShowMessage('Falla al enviar:'+E.Message);
end;
finally
ServidorSMTP.Disconnect;
ServidorSMTP.Free;
Mailmessage.Free;
end;
close;
end;
end.

de antemano les agradesco que minimo se lean se les agradece !!gracias!!

FENIXadr 09-12-2010 01:14:46

hola rackzo.. no se si has podido solucionar el problema... si es asi seria bueno que comentaras como lo solucionaste...

lo que puedo yo aportar es que el puerto para gmail no es el "587" que figura en tu código sino el "465" yo estoy intentando hacer lo mismo con las indy 9 y delphi 7 pero cuando trata de conectarse se queda en un loop infinito... si soluciono el problema te comento..

acá te dejo un link donde poder ver los diferentes servidores y sus puertos..

http://www.emailaddressmanager.com/t...-settings.html

FENIXadr 09-12-2010 18:53:39

por fin pude enviar un e-mail desde y a gmail...
 
Bueno gente despues de renegar un monton... por fin pude enviar un mail desde y a gmail... lo que pensé que iva a ser una tontera terminó por ser una odisea.. pero en fin ya está...

El problema más grande que tenía era mi falta de conocimientos sobre protocolos de seguridad y las versiones de las .dll que andan por toda la red y que funcionan sólo con la versión adecuada...

Mi código está hecho en delphi 7 con las indy 9

Código Delphi [-]
// indySMTP es de tipo TIdSMTP (el icono es un buzon azul)  
//mailMensaje es de tipo TIdMessage (el icono es un sobre)  
//IdSSLIOHandlerSocket1 es un componente TIdSSLIOHandlerSocket (el icono es un candadito)   
procedure TForm1.Button1Click(Sender: TObject); 
begin
   mailMensaje.Clear;
   mailMensaje.From.Address := 'tu_email@gmail.com';
   mailMensaje.Subject := 'Asunto';
   mailMensaje.Body.SetText(Memo1.Lines.GetText);
   mailMensaje.From.Name := 'Tu Nombre';
   mailMensaje.Recipients.EMailAddresses := 'email_destino';
   indySMTP.Host := 'smtp.gmail.com';
   indySMTP.Username := 'tu_email@gmail.com';
   indySMTP.Password := 'tu_clave';
   indySMTP.Port := 465;
   indySMTP.AuthenticationType := atLogin;
   indySMTP.IOHandler := IdSSLIOHandlerSocket1;
   IdSSLIOHandlerSocket1.SSLOptions.Method := sslvSSLv23;
   IdSSLIOHandlerSocket1.SSLOptions.Mode := sslmUnassigned;
   try
       indySMTP.Connect;
       try
           indySMTP.Send(mailMensaje);
       finally
           showmessage('El mensaje se envió correctamente');
       end;
   except
       showmessage('Se produjo un fallo durante el envío del mensaje');
   end;
   if  indySMTP.Connected then
       indySMTP.Disconnect;
end;

y eso es todo...
aqui les dejo las un link a las .dll que utilicé y que me funcionaron a la perfección...

http://indy.fulgan.com/SSL/Archive/

el archivo que usé es el
indy_openssl096.zip

(recuerden que estoy trabajando con indy 9.. para otras versiones de indy no creo que funcionen estas .dll)

Por cualquier duda aqui estmos.

saludos..

Citlalli 13-04-2011 19:55:49

como usas las dlls
 
Hola Fenix, oye puedes poner un ejemplo de como utilizaste las Dlls, soy nueva en este asunto de mandar correos. gracias.

FENIXadr 14-04-2011 01:20:58

Hola Citlalli.. a las DLL`s no las usas dierctametne sino que las Indy las usa internamente, solo las pones en la carpeta donde está el .EXE.. las DLL´s son 2 : ssleay32.dll y libeay32.dll

Es un asunto tedioso eso de las DLL`s porque depende de la versión de Indy andan una versión u otra de DLL, yo estaba usando las Indy 9 con las DLL`s que dejé en el otro post, ahora me pasé a indy 10 y tengo que buscar otra vez las DLL´s en la web.. Si alguien encontró las DLL´s que funcionen correctamente en las Indy 10 que agregue el link para sacarlas de ahi....

Bueno.. espero haber sido util..

Saludos..

beginner01 14-04-2011 02:09:57

saludos.

aqui estan las ultimas versiones de ambas dll's

FENIXadr 14-04-2011 03:08:43

Muchas gracias.. ya las bajé en cualquier momento las pruebo..

Saludos.


La franja horaria es GMT +2. Ahora son las 19:26:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi