Receber e enviar email

14/12/2005

0

Preciso desenvolver uma aplicacao que o usuario recebe emails, classifique esses emails e apos esse processo, de acordo com sua classificacao o sistema envie resposta com diversos arquivos anexados de acordo com a classificacao, alguem tem alguma ideia de como fazer isso?
Abs


Felipeiw

Felipeiw

Responder

Posts

14/12/2005

Massuda

Sobre como receber/enviar email, usando os componentes Indy:[list:d32c6e1b04][*:d32c6e1b04][url=http://forum.clubedelphi.net/viewtopic.php?t=65357]neste tópico[/url] tem um exemplo básico de como enviar[*:d32c6e1b04][url=http://www.forumweb.com.br/foruns/index.php?showtopic=25669]neste tópico[/url] (em outro fórum) tem um exemplo básico de como receber (se bem que o tópico ficou meio confuso)[/list:u:d32c6e1b04]


Responder

14/12/2005

Felipeiw

Baixei um exemplo da pagina Indy, chamado maildemo, conecta ao servidor de email baixa os emais, porem neste exemplo quando eu clico para ler a mensagem ela automaticamente é excluida do servidor de email, as mensagens que eu nao ler continuam no servidor, gostaria que essas mensagens so fossem excluidas do servidor se eu as excluisse, isso é possivel, eu ate procurei no metodo que le a mensagem, mas nao encontrei instrucao para deletar, sera isso uma regra do servidor?
Abs


Responder

14/12/2005

Massuda

Baixei um exemplo da pagina Indy
:wink: Garoto esperto!

...gostaria que essas mensagens so fossem excluidas do servidor se eu as excluisse, isso é possivel, eu ate procurei no metodo que le a mensagem, mas nao encontrei instrucao para deletar, sera isso uma regra do servidor?
Na verdade o servidor POP3 só deleta uma mensagem se o programa solicitar para excluir a mensagem; no Indy isso é feito através do método TIdPOP3.Delete(MsgNum), onde MsgNum é um valor entre 1 e o valor retornado por TIdPOP3.CheckMessages.

Uma curiosidade... as mensagens só são excluídas de fato do servidor quando você desconectar do servidor; nesse meio tempo, elas ficam apenas marcadas para deleção. Você pode desmarcar todas as mensagens ´deletadas´ usando TIdPOP3.Reset.


Responder

14/12/2005

Felipeiw

   stTemp := Statusbar1.Panels[1].text;
   if lvHeaders.Selected = nil then
      begin
         Exit;
      end;

   //initialise
   Showbusy(true);
   Msg.Clear;
   Memo1.Clear;
   lvMessageParts.Items.Clear;
   From.Caption := ´´;
   Cc.Caption := ´´;
   Subject.Caption := ´´;
   Date.Caption := ´´;
   Receipt.Caption := ´´;
   Organization.Caption := ´´;
   Priority.Caption := ´´;
   pnlAttachments.visible := false;

   //get message and put into MSG
   ShowStatus(´Retrieving message "´ + lvHeaders.Selected.SubItems.Strings[3] + ´"´);
   POP.Retrieve(lvHeaders.Selected.Index + 1, Msg);
   statusbar1.Panels[0].text := lvHeaders.Selected.SubItems.Strings[3];

   //Setup fields on screen from MSG
   From.Caption := Msg.From.Text;
   Recipients.Caption := Msg.Recipients.EmailAddresses;
   Cc.Caption := Msg.CCList.EMailAddresses;
   Subject.Caption := Msg.Subject;
   Date.Caption := FormatDateTime(´dd mmm yyyy hh:mm:ss´, Msg.Date);
   Receipt.Caption := Msg.ReceiptRecipient.Text;
   Organization.Caption := Msg.Organization;
   Priority.Caption := IntToStr(Ord(Msg.Priority) + 1);

   //Setup attachments list
   ShowStatus(´Decoding attachments (´ + IntToStr(Msg.MessageParts.Count) + ´)´);
   for intIndex := 0 to Pred(Msg.MessageParts.Count) do
      begin
         if (Msg.MessageParts.Items[intIndex] is TIdAttachment) then
            begin //general attachment
               pnlAttachments.visible := true;
               li := lvMessageParts.Items.Add;
               li.ImageIndex := 8;
               li.Caption := TIdAttachment(Msg.MessageParts.Items[intIndex]).Filename;
               li.SubItems.Add(TIdAttachment(Msg.MessageParts.Items[intIndex]).ContentType);
            end
         else
            begin //body text
               if Msg.MessageParts.Items[intIndex] is TIdText then
                  begin
                     Memo1.Lines.Clear;
                     Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[intIndex]).Body);
                  end
            end;
      end;

 ShowStatus(stTemp);
 Showbusy(false);


Este metodo é executado quando clico 2x na mensagem, depois de executar esse metodo a mensagem é deletada do servidor, li seu topico no forumweb e la diz que para deletar a mensagem é POP.Delete(NumMsg), esse comando existe em outro botao no form, mas nao nesse metodo, o que sera que acontece?
Abs


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar