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)