Array
(
)

IDPOP3Server

Tchelllo
   - 09 dez 2008

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:

#Código

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:

#Código
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!