cliente de correo codigo fuente

delfosdc
28 de Marzo del 2004
Alguien me podria pasar lo basico para hacer un cliente de correo en delphi. Es que estoy buscando y no he encontradonada. Es una cosa que me gustaria hacer. Gracias


mfercor
28 de Marzo del 2004
Para empezar a programar un cliente de correo, imagino que POP3, puedes empezar por conocer los
componentes TIdPOP3 (Indy Clientes) y TIdMessage (Indy Misc).

Haz esta prueba:
1. Crea un nuevo proyecto de aplicaci贸n (Form1)
2. Inserta un TListView (ListView1) a Form1
2.1 A帽ade 4 columnas
2.3 Propiedad "RowSelect" a "True"
2.3 Propiedad "ViewStyle" a "vsReport"
2.4 A帽ade un procedimiento al evento "OnDblClick"
3. Inserta un TIdPOP3 (IdPOP31) a Form1
4. Inserta un TIdMessage (IdMessage1) a Form1
5. Inserta un TButton (Button1) a Form1
5.1 Propiedad "Caption" a "Recoger correo"
5.2 A帽ade un procedimiento al evento "OnCLick"
6.- Inserta un TMemo (Memo1) a Form1

Con esto tenemos los componentes y controles m铆nimos para comenzar a probar. Ahora viene el c贸digo:

Codigo para "OnClick" de Button1

procedure TForm1.Button1Click(Sender: TObject);
var
Counter: Integer;
ListItem: TListItem;
begin
ListView1.Clear;
if IdPOP31.Connected then IdPOP31.Disconnect;
IdPOP31.Host:='nombre_del_host_o_ip';
IdPOP31.Port:=110;
IdPOP31.UserID:='nombre_de_usuario';
IdPOP31.Password:='contrase帽a_de_usuario';
IdPOP31.Connect;
if IdPOP31.CheckMessages>0 then
begin
for Counter:=1 to IdPOP31.CheckMessages do
begin
IdMessage1.Clear;
IdPOP31.RetrieveHeader(Counter,IdMessage1);
ListItem:=ListView1.Items.Add;
ListItem.Caption:=DateToStr(IdMessage1.Date);
ListItem.SubItems.Add(IdMessage1.From.Text);
ListItem.SubItems.Add(IdMessage1.Subject);
ListItem.SubItems.Add(IntToStr(IdPOP31.RetrieveMsgSize(Counter)));
end;
end;
end;

Codigo para "OnDblClick" de ListView1

procedure TForm1.ListView1DblClick(Sender: TObject);
var
Counter: Integer;
begin
if ListView1.Items.Count>0 then
begin
IdMessage1.Clear;
IdPOP31.Retrieve(ListView1.ItemFocused.Index+1,IdMessage1);
for Counter:=0 to IdMessage1.MessageParts.Count-1 do
begin
if IdMessage1.MessageParts.Items[PartCounter] is TIdAttachment then
begin
{Archivos adjuntos}
end
else if IdMessage1.MessageParts.Items[PartCounter] is TIdText then
begin
{Cuerpo del correo}
Memo1.Lines:=TIdText(IdMessage1.MessageParts.Items[PartCounter]).Body
end;
end;
end;

Espero que te valga como comienzo, y que te funcione, es que con el tama帽o mimino de esta TextArea :P no se si ira todo correcto, de todas formas si tienes alg煤n problemas ya escribiras. Un saludo.

Alonso
28 de Marzo del 2004
En la web www.ajpdsoft.com, en la secci贸n Descargas podr谩s descargarte el c贸digo fuente de un minicliente de e-mail: "AjpdSoft Comprobar E-Mail C贸digo Fuente", realizado en Delphi 6, s贸lo has de registrarte (es totalmente gratuito)