Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   enviar un email desde delphi a hotmail o gmail (https://www.clubdelphi.com/foros/showthread.php?t=46274)

abraham 27-07-2007 19:26:08

enviar un email desde delphi a hotmail o gmail
 
hola amigos nuevamente,

realizo un software, me gustaria hacer monitoreo de procesos(sql, codigos, fechas)de ese software, el cual me enviara email a mi cuenta de correo ya sea hotmail o gmail,

necesito saber como puedeo realizar un cod, para hacer esto.

espero q mi inquietud les sirva como inspiracion.

ContraVeneno 27-07-2007 20:07:21

No eres el primero en tener tal inspiración :D

Al final de esta página, encontrarás varios hilos donde se explica este problema. Y estoy seguro que la final de esas páginas encontrarás mas enlaces.

BlueSteel 27-07-2007 20:14:26

Hola

desde delphi 7 hice lo sgte

puse el componente IdSMTP y el IdMessage que estan en la paleta Indy Clients e Indy Misc respectivamente

el codigo es el sgte
Código Delphi [-]
     With IdMessage Do
     Begin
          Body.Clear;
          Body.Add(vMensaje.Text);
          From.Text := direccion@dominio.com;
          Recipients.EMailAddresses := vPara.Text;
          Subject := vAsunto.Text;
          Priority := TidMessagePriority(mpHighest);
          TidAttachment.Create(IdMessage.MessageParts,Concat('ruta del archivo a adjuntar');
     End;
     With IdSMTP do
     Begin
          Username := nombre_usuario_cta_correo_saliente;
          Password := clase_cuenta;
          Host     := 'servidor smtp';
          Port     := 25;
          try
             Connect;
             Try
                Send(IdMessage);
             Finally
                Disconnect;
             End;
             ShowMessage('Se envio correo en forma correcta');
          Except
                On E: EIdProtocolReplyError Do
                   ShowMessage('E-Mail no se ha podido enviar');
                On E: EFOpenError Do
                   Begin
                        ShowMessage('E-Mail no se ha podido enviar' + #13 +
                                    'Fichero Adjunto desconocido o erróneo.');
                   end;
                On E: EIdSocketError Do
                   Begin
                        ShowMessage('E-Mail no se ha podido enviar'+ #13 +
                                    'Host desconocido o incorrecto.');
                   end
                Else
                   ShowMessage('Fallo en el envio de email');
          End;
         If Connected Then Disconnect;
     End;

espero que te sirva

poliburro 27-07-2007 20:15:50

Cita:

Empezado por ContraVeneno
No eres el primero en tener tal inspiración :D

Al final de esta página, encontrarás varios hilos donde se explica este problema. Y estoy seguro que la final de esas páginas encontrarás mas enlaces.



Que no este hilo debería estar en internet?

abraham 27-07-2007 23:42:47

Ing. Abraham
 
ok. para la gente q le incomodo mi comentario.
la razon no es la idea de ´ una funcion para mandar codigo´.

mi objetivo es el sgte: monitoreo de codigo. tu entregas un producto y esperas q este bien, y que funcione bien en largos periodos, osea de los errores puedes aprender mucho. esto te

no es el tema es la razon.


tu puedes tener una herramienta, pero si no sabes como usarla, de nada te sirve.

ha y disculpen a los q les molesto, el tema.

abraham 27-07-2007 23:56:49

Blue.. Inquietud
 
ha compadre blue..

muchas gracias por el codigo. esto es lo que yo necesito, algo interno, q el usuario no se de cuenta ,. osea, sin utilizar outrus.. ni nada de esas cosas

compadre, me sale undefine o algo asi en :
y creo q las q le siguen tambien

username := nombre_usuario_cta_correo_saliente;

estas q son variables o propiedades

ContraVeneno 28-07-2007 00:01:11

A caray :confused:
No veo a nadie a quien parezca le hay incomodado tu comentario. Si te refieres a mi, por la forma en que conteste, solo estaba tratando de señalar que ClubDelphi.Com tiene una opción de búsqueda para encontrar temas que ya hayan sido tratados anteriormente. Así no habría necesidad de abrir el mismo hilo 10 veces.

Al igual que en el otro hilo, mi intesión es hacer notar que la ayuda de delphi esta muy bien documentada, con explicaciones y ejemplos.

vamos, que cuando tengas una duda, lo primero que hay que hacer es buscar en la ayuda de delphi presionando F1, si eso no resuelve tu duda, puedes buscar aquí en el foro y si siguen sin encontrar, con toda confianza puedes abrir un tema nuevo, que como te podrás dar cuenta, siempre abrá alguien dispuesto a ayudarte.

respecto a tu pregunta, según veo, son variables.

De cualquier manera, revisa este enlace.

Saludos.

eduarcol 28-07-2007 00:02:37

En primero a nadie le incomoda tu mensaje, lo que te quisieron aclarar es que el tema ya se ha tocado reiteredamente en los foros, con respecto al error que te sale es que debes cambiar nombre_usuario_cta_correo_saliente por el nombre del usuario por medio del cual enviaras el correo

Edito: Escribi al mismo tiempo que contraveneno, por cierto lee un poco la guia de estilo para que veas como te podemos ayudar un poco mas en tus preguntas

abraham 28-07-2007 01:35:19

cual sera el problema?
 
With IdMessage Do
Begin
Body.Clear;
Body.Add(Edit1.Text);
From.Text := 'ingeniero_abraham@hotmail.com';
Recipients.EMailAddresses := 'ingeniero_abraham@hotmail.com';
Subject := 'Monitoreo';
Priority := TidMessagePriority(mpHighest);
End;
With IdSMTP1 do
Begin
Username :='Jaime'; //nombre_usuario_cta_correo_saliente;
Password := '12345'// clase_cuenta;
Host := 'servidor smtp';
Port := 25;
try
Connect;
Try
Send(IdMessage);
Finally
Disconnect;
End;
ShowMessage('Se envio correo en forma correcta');
Except
On E: EIdProtocolReplyError Do
ShowMessage('E-Mail no se ha podido enviar');
On E: EFOpenError Do
Begin
ShowMessage('E-Mail no se ha podido enviar' + #13 +
'Fichero Adjunto desconocido o erróneo.');
end;
On E: EIdSocketError Do
Begin
ShowMessage('E-Mail no se ha podido enviar'+ #13 +
'Host desconocido o incorrecto.');
end
Else
ShowMessage('Fallo en el envio de email');
End;
If Connected Then Disconnect;
End;

abraham 28-07-2007 01:41:46

ayuda
 
he consultado todos los hilos, y no me ha funcionado bien.
necesito algo senciillo y efectivo.


esos hilos utilizan outroo... y esas cosas, muy complejos y con errro,
lo unico q quiero es mandar un mensaje a un correo y listo

eduarcol 28-07-2007 03:42:54

Vamos a ver si no pones de tu parte no creo que logres nada, estas dando la impresion de prepotencia, pero para que no se diga aqui va mi granito de arena

Código Delphi [-]
procedure TfrCorreo.Enviar;
var
  mail : TIDMessage;
  smtp : TIdSMTP;
begin
  smtp := TIdSMTP.Create(self);
  // ASIGNO EVENTOS
  smtp.Name := 'Smtp';
  // CONFIGURACION DEL SERVIDOR AL QUE SE ENVIA EL CORREO
  with smtp do begin
    AuthenticationType := atLogin;
    Host := //Aqui colocas la direccion del servidor de correo saliente;
    port := 25;
    Username := //Aqui colocas la direccion de correo desde la que enviaras el correo;
    Password := //Clave de dicha cuenta;
  end;

  mail := TIdMessage.Create(Self);
  // CONFIGURACION DEL MENSAJE A ENVIAR
  with mail do begin
    From.Address := //aqu iva la direccion de correo desde la que vas a enviar
    Recipients.EMailAddresses := //aqu iva la direccion de correo hacia la que vas a enviar
    Subject := //Asunto del correo
    body.Text  := //Texto del correo
  end;

  //aDJUNTA EL ARCHIVO
  if FileExists(//El archivo que vas a enviar) then
      TIdAttachment.create(mail.MessageParts,//Ruta del archivo que vas a enviar);

  try
    // CONEXION CON EL SERVIDOR DE CORREO
    smtp.Connect(10000);
    try
      // ENVIO DEL MENSAJE
      smtp.Send(mail);
    except
      on E: Exception do
         ShowMessage('Fallo al enviar: ' + E.Message);
    end;
    ShowMessage('Mensaje enviado satisfactoriamente');
  finally
    if SMTP.Connected then SMTP.Disconnect;
    smtp.free;
    mail.free;
  end;
end;

Este codigo esta 100% funcional, lee las pistas que te deje entre las lineas para que lo puedas adaptar

abraham 28-07-2007 19:27:49

compadre, lamento mucho molestalo, es q persiste el error.
 
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
  mail : TIDMessage;
  smtp : TIdSMTP;
begin
  smtp := TIdSMTP.Create(self);
  // ASIGNO EVENTOS
  smtp.Name := 'Smtp';
  // CONFIGURACION DEL SERVIDOR AL QUE SE ENVIA EL CORREO
  with smtp do begin
    AuthenticationType := atLogin;
    Host :='INGENIERO_ABRAHAM@HOTMAIL.COM'; //Aqui colocas la direccion del servidor de correo saliente;
    port := 25;
    Username :='INGENIERO_ABRAHAM@HOTMAIL.COM';  //Aqui colocas la direccion de correo desde la que enviaras el correo;
    Password := 'XXXX'  //Clave de dicha cuenta;
  end;
  mail := TIdMessage.Create(Self);
  // CONFIGURACION DEL MENSAJE A ENVIAR
  with mail do begin
    From.Address := 'INGENIERO_ABRAHAM@HOTMAIL.COM'; //aqu iva la direccion de correo desde la que vas a enviar
    Recipients.EMailAddresses := 'INGENIERO_ABRAHAM@HOTMAIL.COM';//aqu iva la direccion de correo hacia la que vas a enviar
    Subject := 'hola'//Asunto del correo
    body.Text  := 'delphi'//Texto del correo
  end;
  //aDJUNTA EL ARCHIVO
 // if FileExists(//El archivo que vas a enviar) then
   //   TIdAttachment.create(mail.MessageParts,//Ruta del archivo que vas a enviar);
  try
    // CONEXION CON EL SERVIDOR DE CORREO
    smtp.Connect(10000);
    try
      // ENVIO DEL MENSAJE
      smtp.Send(mail);
    except
      on E: Exception do
         ShowMessage('Fallo al enviar: ' + E.Message);
    end;
    ShowMessage('Mensaje enviado satisfactoriamente');
  finally
    if SMTP.Connected then SMTP.Disconnect;
    smtp.free;
    mail.free;
  end;
end;

este:
undeclared identifier: 'Username'
q sera.?

eduarcol 28-07-2007 20:33:40

estas son las uses que necesitas:

IdMessage, IdSMTP

Servidor de correo saliente no es igual a cuenta de usuario, con cuentas de correo http no te va a servir necesitas POP

abraham 30-07-2007 17:12:00

helpp
 
compadre IdMessage, IdSMTP
estas librerias ya las tengo , se generaron solas

el error sigue persistiendo.

compadre, no me puedes mandar un ejemplo, con todo el codigo, te lo agradeceria mucho y disculpa tanta molestia.

eduarcol 30-07-2007 17:28:59

Resuelve primero el incoveniente este, cuando lo tengas me das los datos y te ayudo a adaptarlo:

Cita:

Empezado por eduarcol
con cuentas de correo http no te va a servir necesitas POP

, por favor usa las etiquetas para mostrar el codigo

abraham 01-08-2007 17:53:04

amigo , necesito q me colabores en esto
 
MIS DATOS SON:

Yo voy a enviarlo a mi mismo emial

email: ingeniero_abraham@hotmail.com
o
tengo otro:
ingeniero_abraham@gmail.com

Nombre: Abraham de la Barrera

Clave: xxxx

COmpadre, no me puedes colaborar, acomodandolo a tu codigo, y si te funciona me envias todo el form.

Te lo agradeceria mucho.

waly2k1 05-08-2007 07:33:40

Tampoco me funciona
 
Eduarcol, estimado colaborador, quizas parezca un poco prepotente esta persona como crees, pero no creo venga al caso. El tema es que no funciona el codigo, es mas probé este y varios ejemplos mas y hasta hoy en dia no logre mandar un email con attach, o soy bruto o los ejemplos no andan. La primera opcion descarto.. la segunda la analizo.

Lo que para uno es simple o estupidez, para otros puede ser muy compleja (depende de que lado de la mesa estas). Verlo desde un sillon comodo en tu casa es una cosa y tenerlo al gordo jefe encima y presionando es otra. Tampoco quiero ser grosero con nadie, pero bueh... en momentos de presion no todos la manejamos de la misma manera. Con la experiencia se aprende mas alla de saberse llevar, saberse 'manejar' sin que nadie te este metiendo un dedo...

No me parecio que haya sido prepotente y que no haya puesto esmero en resolverlo por si mismo, pero y si no pudo?, lo pensaste?. Es mas lo dejaste
en cola de espera o stand by. Quizás te molestó la 'chapa' de ingeniero pero bueno, los hay en todos lados, tampoco quiere decir que sepan programar!
Si tenias la solucion por que no se la diste ?.

Tambien va dirigido mi mensaje a los demas que hicieron mas de lo mismo.
Yo estoy hace pocos meses con Delphi, desarrollo cualquier cosa q se pueda desarrollar, con la base de datos que sea, pero tampoco soy Sr en todo, hay cosas que si los mataburros no te dan hay q recurrir a la web. Y si en lugar de respuestas concretas te generan dudas o incertidumbres, viejo te destruye el autoestima!!!

Bueno, tampoco reniego nada a nadie. Pero es la primera vez que veo una cosa así.


Saludos
Walter del pais de la 8 y 9 maravilla del mundo!

eduarcol 05-08-2007 16:13:57

amigo waly2k1 mi intencion no es crear polemica, pero mucho se ha discutido en estos foros el hecho de esperar el codigo resuelto sin tener mucho que investigar, recuerda somos un grupo de programadores ayudandonos entre si , y no esperamos nada a cambio aparte de unas gracias, ya le pase por primera vez un codigo 100% funcional de hecho yo mismo lo tengo en dos aplicaciones, de donde saque este?? de una busqueda en el foro y lo adapte a mis necesidades.

No funciona?? el asunto no es el codigo si no la configuracion, no lo he querido ayudar??? pues ya le he dicho dos veces donde esta el problema y aun asi no ha buscado la solucion, que mas podria hacer yo???, configurarle el correo POP????, pues lamentalemente tambien tengo un problemita como el tuyo

Cita:

Empezado por waly2k1
tener al gordo jefe encima y presionando es otra

segun tu comentario intuyo que no te han podido ayudar, si no lo han hecho pueden haber dos opciones planteaste mal tu pregunta o nadie sabe lo que preguntastes.

Por cierto la chapa de ingeniero no me molesta es que yo soy uno, pero si vamos a la definicion de ingeniero ???

como dices tu analizalo y veras la solucion, por cierto el ultimo mensaje que envio abraham no lo habia visto, pero insisto en mas de lo mismo

necesitas correo POP, estas utilizando http

waly2k1 05-08-2007 20:49:19

Muy buena respuesta
 
eduarcol, no era mi intención crear ningun tipo de polémica. Tampoco soy partidario de brindar código resuelto sin que haya una mínima investigación. Que no me hayan podido ayudar no es mi caso, hasta ahora logré solucionar todas mis inquietudes gracias a la ayuda solidaria de gente de este foro que como tu están siempre brindando una mano amiga en situaciones adversas.

Mi comentario del jefe es acerca de las presiones laborales, cuando se está bajo presión, se formula quizás mal las preguntas o lo quiere todo para ayer y quizás hasta 'servido en bandeja'. Pero bueno te aclaro que lo mio fue sin ánimos de ofender a nadie.

Te mando un saludo y te pido disculpas si malinterpreté todo.
Walter

eduarcol 05-08-2007 20:53:17

Claro no hay problemas, aqui es dificil darle el matiz correcto a las palabras, si me cuentas tu problema con los adjuntos quizas te pueda ayudar, ya que como lo dije a mi me funciona sin problemas


La franja horaria es GMT +2. Ahora son las 00:35:13.

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