Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2012
Allien Allien is offline
Registrado
 
Registrado: jun 2008
Posts: 2
Poder: 0
Allien Va por buen camino
Enviar Correo a través de IdSmtp con Gmail desde Windows Server 2008!!

Hola que tal a todos los foristas.

Antes que nada agradezco el tiempo que se toman en leer este mensaje.

Expongo la situación.


He creado una aplicación para enviar correos desde una cuenta de Gmail a través de los componentes de INDY. IdSmtp, IdMessage y IdSSLIOHandlerSocketOpenSSL.

Como seguramente muchos sabrán Gmail utiliza encriptación a través de SSL, por ello es necesario tener las librerias de OpenSSL "libeay32.dll", "libSSL32.dll" y "ssleay32.dll" motivo por el cual descargue las librerías y las he colocado en el directorio de la aplicación.

La aplicación funciona adecuadamente desde mi máquina donde eh desarrollado la aplicación.

Finalmente necesito que esta aplicación se ejecute desde un servidor el cual tiene Windows Server 2008.

Pero eh aquí el problema, cuando intento enviar un correo desde el servidor, al momento de internar mandar el mensaje, parece que no se hace adecuadamente el HandShake, hasta el momento no eh comprobado mi teoría.

Obviamente eh copiado las librerías de OpenSSL en el Servidor, eh comprobado que se tenga salida a Internet, que el Firewall no bloquee la aplicación, etc.

La aplicación se queda inhibida, y consume enormes recursos de procesamiento.

Les dejo aquí el código de la aplicación que repito, funciona pero sólo en el equipo donde se desarrollo.



//_______________________________________________________________________
Componentes


object smtp: TIdSMTP
IOHandler = IdSSLIOHandlerSocketOpenSSL1
AuthType = atSASL
SASLMechanisms = <>
Left = 112
Top = 400
end
object IdMessage1: TIdMessage
AttachmentEncoding = 'UUE'
BccList = <>
CCList = <>
ContentType = 'text/html'
Encoding = meDefault
FromList = <
item
end>
Recipients = <>
ReplyTo = <>
ConvertPreamble = True
Left = 176
Top = 400
end
object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
Destination = ':25'
MaxLineAction = maException
Port = 25
DefaultPort = 0
SSLOptions.Method = sslvSSLv3
SSLOptions.Mode = sslmClient
SSLOptions.VerifyMode = []
SSLOptions.VerifyDepth = 0
Left = 144
Top = 400
end


procedure TForm2.Button1Click(Sender: TObject);
var
mail : TIDMessage;

begin

IdSSLOpenSSLHeaders.Load;

with smtp do begin
IoHandler:=IdSSLIOHandlerSocketOpenSSL1;
AuthType := atDefault;
Host := 'smtp.gmail.com';
port := StrtoInt(txtPort.text); //<-587
useTLS:=utUseRequireTLS;
Username := 'usuario';
Password := 'contraseña;
end;
mail := TIdMessage.Create(Self);
// CONFIGURACION DEL MENSAJE A ENVIAR
with mail do begin
From.Address := 'dirección@origen.com';
Recipients.EMailAddresses := txtDestino.text;
Subject := txtMensaje.text;
body.Text := txtMensaje.text;
end;
try
// CONEXION CON EL SERVIDOR DE CORREO
begin
memo1.Lines.add('conectando con el servidor');
smtp.Connect;
memo1.Lines.add('conectado');
try
// ENVIO DEL MENSAJE
begin
memo1.Lines.add('enviando mensaje');
smtp.Send(mail);
end;

except
on E: Exception do
begin
memo1.Lines.add('Fallo al enviar: ' + E.Message+ ' Tiempo Tomando '+labTiempo.caption);
end;
end;

memo1.Lines.add('Mensaje enviado satisfactoriamente'+ ' Tiempo Tomando '+labTiempo.caption);
end;

except on e:exception do
begin

memo1.Lines.add('Fallo al enviar: ' + E.Message+ ' Tiempo Tomando '+labTiempo.caption);

end;
end;
mail.Free;

end;

//_______________________________________________________________________

Saludos...
Responder Con Cita
  #2  
Antiguo 29-09-2012
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Lo unico que se me ocurre es. Utilazte bien las DLL (si son para 32 o para 64 bits?)

proque a mi me ha dado problemas entre las diferentes versiones
Responder Con Cita
  #3  
Antiguo 29-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Allien Ver Mensaje
.
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración

Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #4  
Antiguo 01-10-2012
Allien Allien is offline
Registrado
 
Registrado: jun 2008
Posts: 2
Poder: 0
Allien Va por buen camino
Si ya verifique que las librerías son para 32 Bits.
Pero aun así sigue con el mismo problema.

Gracias por tu aporte.
Responder Con Cita
  #5  
Antiguo 06-12-2012
Anonymus2009 Anonymus2009 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 25
Poder: 0
Anonymus2009 Va por buen camino
Enviar Gmail desde W2008 con Indy

Código Delphi [-]
with smtpSendmail do begin
IoHandler:=IdSSLIOHandlerSocketOpenSSL1;
AuthType := satDefault;
Host := 'smtp.gmail.com';
port := 465 ;
useTLS:=utUseExplicitTLS;
Username :='usuariosmtp@dominio.com';
Password :='passwordxxxx';
end;
// CONFIGURACION DEL MENSAJE A ENVIAR

mail := TIdMessage.Create(Self);
with mail do begin
From.Address := 'emialremitente@dominio.com';
Recipients.EMailAddresses := 'destinatario@sudominio.com';
Subject := 'asunto';
body.Text := 'Texto del mensaje';
//TIdAttachmentFile.Create(mail.MessageParts, 'fichero.txt');

end;
try
// CONEXION CON EL SERVIDOR DE CORREO
begin
memoMsg.Lines.add('conectando con el servidor');
smtpSendmail.Connect;
memoMsg.Lines.add('conectado');
try
// ENVIO DEL MENSAJE
begin
memoMsg.Lines.add('enviando mensaje');
smtpSendmail.Send(mail);
end;

Última edición por Casimiro Notevi fecha: 06-12-2012 a las 20:16:00.
Responder Con Cita
  #6  
Antiguo 06-12-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Anonymus2009 Ver Mensaje
...
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración

Recuerda poner los tags al código fuente, ejemplo:



Gracias



.
Responder Con Cita
  #7  
Antiguo 07-12-2012
Anonymus2009 Anonymus2009 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 25
Poder: 0
Anonymus2009 Va por buen camino
Enviar Gmail desde W2008 con Indy

Perdonad soy nuevo en este foro, sólo quería trasmitirle que las pruebas hechas con las componentes Indy 10 en Windows 2008 me habían funcionado perfectamente con el código que indiqué.
Responder Con Cita
  #8  
Antiguo 07-12-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¡Ah!, bien, gracias, es que como no habías dicho nada
Responder Con Cita
  #9  
Antiguo 21-12-2012
gustavosv gustavosv is offline
Miembro
 
Registrado: mar 2008
Posts: 51
Poder: 17
gustavosv Va por buen camino
A Anonymus2009 le agradezco haber compartido el código del envío de email usando GMAIL, con base en ello logré corregir el mío y ya me funciona OK.

Saludos,
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
enviar un correo desde ¿ yahoo, gmail ? avmm2004 Internet 1 24-01-2012 18:15:17
Enviar mensaje desde gmail con Indy 10 axelafonso Internet 3 13-01-2012 18:11:39
enviar un email desde delphi a hotmail o gmail abraham SQL 30 06-08-2007 16:46:20
Enviar correo con SMTP de GMAIL via INDY 10 (idSMTP) lpedrazzi Internet 4 31-12-2006 22:30:26
ENVIAR CORREO mi cuenta de correo es GMAIL ASAPLTDA PHP 1 16-11-2006 00:54:03


La franja horaria es GMT +2. Ahora son las 15:42:54.


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
Copyright 1996-2007 Club Delphi