Ir al contenido


Foto

Como mandar un correo con Delphi 2010


  • Por favor identifícate para responder
36 respuestas en este tema

#1 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 09 febrero 2011 - 01:58

Hola compañeros. he estado buscando en el Club y en la red y no he conseguido nada que me funcione, si podéis ayudarme en como mandar un correo electrónico con delphi 2010, sin tener que acudir a gestores de correo, y aprovechando el mensaje de como mandar un archivo adjunto.  Como siempre muchas Gracias
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 09 febrero 2011 - 02:04

Hola Jose Luis

Y porque no utilizas los Indy ?

Salud OS
  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 09 febrero 2011 - 02:08

Esto me funciona en delphi 7 y 2007



delphi
  1. class function TdmCorreo.correo(chostcorreo, cusername, cPassword, cDestinatario, cAsunto, cArchivo: String; cportcorreo: Integer; lsCuerpo: TStringList): Boolean;
  2. begin
  3.   with TdmCorreo.Create(Application) do
  4.   begin
  5.     idMessage1.Clear;
  6.     idMessage1.ContentType := 'text/html';
  7.     idMessage1.FromList.EMailAddresses := cUserName;
  8.     idMessage1.Recipients.EMailAddresses := cDestinatario;
  9.     idMessage1.Subject := cAsunto;
  10.     idMessage1.Body.AddStrings(lsCuerpo);
  11.     if FileExists(cArchivo) then
  12.         TIdAttachmentFile.Create( idMessage1.MessageParts, cArchivo );
  13.     idSMTP1.Username := cUserName;
  14.     idSMTP1.Password := cPassword;
  15.     idSMTP1.Host := cHostCorreo;
  16.     idSmtp1.Port := cPortCorreo;
  17.  
  18.  
  19.         if not idSMTP1.Connected then
  20.           idSMTP1.Connect;
  21.         idSMTP1.Send(IdMessage1);
  22.         Result := True;
  23.  
  24.   end;
  25. end;


  • 0

#4 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 09 febrero 2011 - 02:53

Egostar he probado con varios códigos y nada.
Eduarcol, mañana por la tarde lo probare.
  • 0

#5 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 09 febrero 2011 - 04:49

Me uno a las voces de Egostar y Eduarcol, con Indy es la movida.

De aquí,  descarga el  ejemplo de nombre IdPOP3 / IdSMTP / IdMessage, es una aplicación  para manejar completamente una cuenta de correo usando POP y SMTP, permite adjuntar archivos  y muchas otras cosas.

Saludos

  • 0

#6 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 09 febrero 2011 - 04:55

Me uno a las voces de Egostar y Eduarcol, con Indy es la movida.

De aquí,  descarga el  ejemplo de nombre IdPOP3 / IdSMTP / IdMessage, es una aplicación  para manejar completamente una cuenta de correo usando POP y SMTP, permite adjuntar archivos  y muchas otras cosas.

Saludos


Me olvidaba, si usas Delphi 2010, te va a dar un pequeño error (que debe ser de versiones) que se soluciona cambiando:



delphi
  1.   case SmtpAuthType of
  2.       0: SMTP.AuthType := atNone;
  3.       1: SMTP.AuthType := atDefault; {Simple Login}
  4.   end;



por:



delphi
  1.   case SmtpAuthType of
  2.       0: SMTP.AuthType := satNone;
  3.       1: SMTP.AuthType := satDefault; {Simple Login}
  4.   end;



Saludos.
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 09 febrero 2011 - 09:51

Te he enviado un correo desde una pequeña prueba que hice con Delphi XE, espero que te haya causado risa el cuerpo del mensaje y te haya gustado el cuerpo del adjunto ;)

También subo la función que uso para enviar los correos, que prácticamente es lo mismo que Eduardo ha publicado.

Salud OS

PD, Por cierto, esto lo hice con Turbo Delphi y la migración fué transparente. :)
  • 0

#8 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 10 febrero 2011 - 11:01

Aunque es posible que no sea exactamente lo que buscas, quizás esto te sirva de alguna ayuda.


Saludos.
  • 0

#9 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 10 febrero 2011 - 01:27

debo de estar muy torpe, porque o me faltan datos o algo estoy haciendo mal, no lo he logrado con ninguno, podéis montarme una demo simple por favor.
  • 0

#10 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 febrero 2011 - 01:36

debo de estar muy torpe, porque o me faltan datos o algo estoy haciendo mal, no lo he logrado con ninguno, podéis montarme una demo simple por favor.


Hola Desart

Te marca algún error, no se conecta al servidor de correo, se conecta pero no envia el correo, No envia los adjuntos, ya hiciste un trace de la aplicación para ver donde se atora ???

Si no te urge, en la noche (GMT-6) te mando un ejecutable donde solo coloques los datos para el SMTP.

Salud OS
  • 0

#11 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 10 febrero 2011 - 03:08

Gracias Egostar, no me urge, en el caso de las funciones, probablemente, sea la llamada a alguna uses, o algún componente, ya que no me compila, en el caso de las demos de indy 9 y 10, algunas compilan, pero me dan un error de llevar tiempo sin conectarse.

Los parámetros que le pongo por lo que entiendo son  correo desde lo mando, uno antiguo que no uso, pero funciona

Desart@eresmas.com, smtp.eresmas.com, Usuario y clave, a destino sería desart@misabueso.com cabecera, mensaje.
  • 0

#12 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 10 febrero 2011 - 04:29

Si colocas los errores que te salen exactamente a lo mejor sabemos por donde vienen los tiros
  • 0

#13 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 febrero 2011 - 10:45

Hola Desart

Lo prometido es deuda, hice una pequeña aplicación para enviar correo colocando todos los datos que se necesitan, espero que te sirva como referencia.

Salud OS

Archivos adjuntos


  • 0

#14 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 11 febrero 2011 - 02:03

Hola Egostar, en primer lugar Gracias, me gustaria si puedes mandes los fuentes, en segundo lugar me da el error


Socket Error #10022  Invalid argument.
  • 0

#15 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 11 febrero 2011 - 08:19

Hola Egostar, en primer lugar Gracias, me gustaria si puedes mandes los fuentes, en segundo lugar me da el error


Socket Error #10022  Invalid argument.


Hola Desart

Los fuentes los publico hoy por la noche, ya sabes GMT-6 :)

Acerca del error, me parece que tu firewall está bloqueando la conexión con el servidor de correo, agrega la aplicación al firewall e intenta de nuevo.

Salud OS
  • 0

#16 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 11 febrero 2011 - 10:58

Hola

Espero que puedas abrir y compilar los fuentes, yo los he podido abrir y compilar hasta con Turbo Delphi (BDS 2006).

Salud OS

Archivos adjuntos


  • 0

#17 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

Escrito 13 febrero 2011 - 02:34

Hola Egostar, probé tu código, le di acceso a mi firewall y aun así me sale el siguiente error

    Projectxxx raised exeption class EidSocketError with message 'Socket Error # 10060 Connection timed out.'.
  • 0

#18 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 13 febrero 2011 - 11:02

Hola Egostar, probé tu código, le di acceso a mi firewall y aun así me sale el siguiente error

    Projectxxx raised exeption class EidSocketError with message 'Socket Error # 10060 Connection timed out.'.


Vaya, pues si que es raro, a mi me funciona perfectamente, el problema es que no te puedes conectar al sevidor, ¿ están bien los datos que usas para conectarte ? no veo otra causa, a menos claro que sea como en México, que mi proveedor de internet bloqueo el puerto 25 para el envio de correos con otros proveedores de correo.

Salud OS


  • 0

#19 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 13 febrero 2011 - 06:19

Hola
He probado el programa y funciona perfectamente (el exe).
He tratado de ver el codigo y a la hora de ejecutarlo me muestra errores de que faltan dcu aqui:

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdMessage, IdSMTP, IdAttachmentFile, IdMessageParts,
  IdText ;

[Fatal Error] Unit1.pas(7): File not found: 'IdAttachmentFile.dcu'

Me deben faltar estas dcu en delphi 6, no se.
Saludos

PD: Parece que estos son componentes INDY version 10 y no tengo ninguna version. :

  • 0

#20 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 13 febrero 2011 - 08:50

Así es amigo, esta creado con Indy 10. Lo siento mucho :(

Salud OS
  • 0




IP.Board spam blocked by CleanTalk.