09/12/2008

IDPOP3Server

Pessoal, estou desenvolvendo uma pequena aplicação, com base no demo do site da Indy (demo POP3Server) para usar na minha rede local.

Todas as estações da empresa usam outlook express como leitor de e-mails.

Com esse demo rodando, se colocar na configuração da conta do outlook o ip da maquina onde a demo está rodando, ele devolve um e-mail, como se fosse um e-mail esperando para ser baixado do provedor.

O código que faz isso é este:

ASender.Thread.Connection.WriteLn(´+OK 40 octets´);
ASender.Thread.Connection.WriteLn(´From: demo@projectindy.org´);
ASender.Thread.Connection.WriteLn(´To: you@yourdomain.com ´);
ASender.Thread.Connection.WriteLn(´Subject: Hello ´);
ASender.Thread.Connection.WriteLn(´´);
ASender.Thread.Connection.WriteLn(´This is a email body´);
ASender.Thread.Connection.WriteLn(´.´);


Minha dúvida é como enviar um arquivo que veio anexado com o e-mail baixado, para a estação que solicitou?

Já tentei o seguinte:

ASender.Thread.Connection.WriteLn(´Content-Type: application/octet-stream; ´+
            ´name="arquivo.jpg"´);

ASender.Thread.Connection.WriteLn(´Content-Transfer-Encoding:base64´);
ASender.Thread.Connection.WriteLn(´Content-Disposition: Attachment;     ´filename="arquivo.jpg"´);

AStream := TFileStream.Create(´C:\arquivo.jpg´, fmOpenRead);

//AStream.Seek(0, soFromBeginning);
AStream.Position := 0;

ASender.Thread.Connection.WriteInteger(AStream.Size);
ASender.Thread.Connection.WriteStream(AStream);


Fazendo desta forma até vai um anexo qdo é solicitado o recebimento no outlook, mas vai zerado (0 bytes).

Alguém sabe o que estou fazendo de errado?

Valeu pessoal!


Tchelllo