PDA

Ver la Versión Completa : Mails Nuevos con TidIMAP4


fide
23-10-2007, 19:18:41
Hola. Desde hace algún tiempo que vengo trabajando con el idPOP3 y me ha ido de maravillas. Pero he tenido que hacer una aplicación de mail más avanzada y tuve que migrar al protocolo IMAP que es más avanzado. Ahí estuve mirando como trabajar con el pero no doy con una cosa. ¿Cómo busco la cantidad de mensajes nuevos en el MAILBOX seleccionado?

pcicom
24-10-2007, 00:17:02
Hola. Desde hace algún tiempo que vengo trabajando con el idPOP3 y me ha ido de maravillas. Pero he tenido que hacer una aplicación de mail más avanzada y tuve que migrar al protocolo IMAP que es más avanzado. Ahí estuve mirando como trabajar con el pero no doy con una cosa. ¿Cómo busco la cantidad de mensajes nuevos en el MAILBOX seleccionado?


Eso va a depender del Servidor IMAP que tengas instalado... puedes intentar buscando por GOOGLE los comandos basicos de IMAP.. y hacer puruebas para comprenderlas conectando con un TELNET ip puertoIMAP

Hace tiempo estube haciendo algo similar con COURIER-IMAP...


usuario@mydominio:~$ telnet 127.0.0.1 imap2
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
* OK Courier-IMAP ready.
Copyright 1998-2002 Double Precision, Inc.
See COPYING for distribution information.

AB LOGIN "username" "password"
AB OK LOGIN Ok.

BC SELECT "Inbox"
* FLAGS (\Draft \Answered ... \Recent)
* OK [PERMANENTFLAGS (\Draft \Answered ... \Seen)] Limited
* 23 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1026858715] Ok
BC OK [READ-WRITE] Ok

ZZZZ LOGOUT
* BYE Courier-IMAP server shutting down
ZZZZ OK LOGOUT completed

Connection closed by foreign host.

fide
24-10-2007, 00:27:08
Ya he logrado mostrar solo la cantidad de correos sin leer que hay en el MailBox con el idIMAP4.

Aqui les va el codigo..

al idIMAP1 lo he renombrado a cliente, y he insertado un idMailBox y lo he renombrado a MailBox1.

procedure TForm1.Button1Click(Sender: TObject);
begin cliente.Host := 'correo.ipigto.rimed.cu';
cliente.Port := 143;

cliente.Username := 'NombreDeUsuario';
cliente.Password := 'contraseña';
cliente.Connect;

cliente.StatusMailBox('INBOX', MailBox1, [mdUnseen]);
Caption := 'Usted tiene ' + IntToStr(MailBox1.UnseenMsgs) + ' mensajes nuevos en la bandeja de entrada';

end;


Lo que sucede es que si no llamamos la instruccion StatusMailBox con el ultimo parametro igual a mdUnseen pues entonces la otra instruccion de abajo nos devuelve 0 en la cantidad de correos sin leer...

santiago14
03-01-2008, 21:42:58
Ya he logrado mostrar solo la cantidad de correos sin leer que hay en el MailBox con el idIMAP4.

Aqui les va el codigo..

al idIMAP1 lo he renombrado a cliente, y he insertado un idMailBox y lo he renombrado a MailBox1.

procedure TForm1.Button1Click(Sender: TObject);
begin cliente.Host := 'correo.ipigto.rimed.cu';
cliente.Port := 143;

cliente.Username := 'NombreDeUsuario';
cliente.Password := 'contraseña';
cliente.Connect;

cliente.StatusMailBox('INBOX', MailBox1, [mdUnseen]);
Caption := 'Usted tiene ' + IntToStr(MailBox1.UnseenMsgs) + ' mensajes nuevos en la bandeja de entrada';

end;


Lo que sucede es que si no llamamos la instruccion StatusMailBox con el ultimo parametro igual a mdUnseen pues entonces la otra instruccion de abajo nos devuelve 0 en la cantidad de correos sin leer...

Hola, estoy tratando de hacer lo mismo pero con el componente de Indy, idPOP3. ¿Cómo puedo hacerlo?

ramflores
09-05-2012, 23:21:44
Hola, estoy tratando de hacer este ejemplo, con un servidor de correo interno, pero no me hace nada, me marca un error, en INBOX, asi debe ser?, el host, seria la ip del servidor?

gracias de antemano

Ya he logrado mostrar solo la cantidad de correos sin leer que hay en el MailBox con el idIMAP4.

Aqui les va el codigo..

al idIMAP1 lo he renombrado a cliente, y he insertado un idMailBox y lo he renombrado a MailBox1.

procedure TForm1.Button1Click(Sender: TObject);
begin cliente.Host := 'correo.ipigto.rimed.cu';
cliente.Port := 143;

cliente.Username := 'NombreDeUsuario';
cliente.Password := 'contraseña';
cliente.Connect;

cliente.StatusMailBox('INBOX', MailBox1, [mdUnseen]);
Caption := 'Usted tiene ' + IntToStr(MailBox1.UnseenMsgs) + ' mensajes nuevos en la bandeja de entrada';

end;


Lo que sucede es que si no llamamos la instruccion StatusMailBox con el ultimo parametro igual a mdUnseen pues entonces la otra instruccion de abajo nos devuelve 0 en la cantidad de correos sin leer...