Ver Mensaje Individual
  #1  
Antiguo 29-06-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Reputación: 17
kapcomx Va por buen camino
como capturar una excepcion al enviar mail smtp indy gmail

Que tal Compañeros, Un saludo a todos los que forman parte de este gran Foro, Pues nuevamente acudo a ustedes con un problema, pues resulta que donde trabajo tenia un programa que enviaba archivos de pedido a los clientes usaba idsmtp y idmessage y funcionaba todo muy bien lo tenia configurado para que se enviara de un servidor muy especifico de la empresa, pero me pidieron que lo cmabiara para que se pudiera enviar desde cualquier cuenta de gmail.

buscando en el Foro encontre un excelente ejemplo de el compañero Roman, el cual me funciona muy bien, el único detalle que tengo es que si al momento de enviar el correo me pide una contraseña, si la escribo correctamente no hay problema, pero si es erronea me salta un mensaje de error (el cual si estuviera en español seria perfecto).

project my_proyecto raised exception class EidSMTPReply error with message 'Username and password not accepted' . learn more at

y me da una liga de ayuda de gmail.

me gustaria saber como cachar esa excepcion para en lugar de ese mensaje pudiera poner uno propio.
lo he intentado asi pero no me funciona como quiero por que primero sale el mensaje mencionado y luego el mio.

Código Delphi [-]
procedure Tfrmenviaproveedor2.btnEnviarCorreoClick(Sender: TObject); 
var 
  Password: String; 
  filename: String; 
begin 
  filename:= ed_archivo.Text; 
  idMessage.Clear; 
  idMessage.FromList.EMailAddresses := 'lacuentadegmail@gmail.com'; 
  idMessage.Recipients.EMailAddresses := ed_mail.Text; 
  idMessage.Subject := 'Confirmar Existencias'; 
  idMessage.AttachmentTempDirectory := filename; 
  TIdAttachmentfile.create(idMessage.MessageParts,filename); 
  mmobserva.Lines.Add('Mensaje de Correo enviado desde Sistema Informatico XXXXXXX.'); 
  idMessage.Body.AddStrings(mmobserva.Lines); 
  if InputQuery('Comercializadora XXXXXX', 'Contraseña del servidor', Password) then 
  begin 
    idSMTP.Username := 'lacuentadegmail@gmail.com'; 
    idSMTP.Password := Password; 
    btnEnviarCorreo.Enabled := false; 
    try 
      if not idSMTP.Connected then 
        idSMTP.Connect; 
      idSMTP.Send(IdMessage); 
    except 
      showmessage('Ocurrio un error al Intentar enviar el Correo, Verifique el password indicado'); 
      rebote:=true; 
      btnEnviarCorreo.Enabled := true; 
    end;
  end; 
end;

De antemano les agradezco a quienes puedan ayudarme

Saludos...
__________________
un tipo al cual la sociedad no le tiene el mas mínimo respeto no puede ser presidente....

Última edición por Casimiro Notevi fecha: 29-06-2012 a las 00:09:06.
Responder Con Cita