Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2016
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 21
JXJ Va por buen camino
Question ¿como recibo el body cuerpo y adjuntos de un mail IMAP server ??

hola

duda de como puedo obtener el mensaje de un mail.
el body,.

tengo este codigo para IMAP de GMAIL. ya configure mi cuenta de gmail para que soporte
acceso de aplicaciones externas y como puedo bajar los archivos adjuntos.

Gracias.

Código Delphi [-]
unit GmailUnreadMailsU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdMessage, IdIOHandler, IdIOHandlerSocket,
  IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdIMAP4;

type
  TGmailUnreadMailsF = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    EditCorreo: TEdit;
    EditPass: TEdit;
    BtnConecta: TButton;
    Memo1: TMemo;
    BtnGetNumlMailsInbox: TButton;
    IdIMAP41: TIdIMAP4;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    IdMessage1: TIdMessage;
    BtnGetUnreadlMails: TButton;
    Memo2: TMemo;
    EditUUID: TEdit;
    BtnGetData: TButton;
    Label6: TLabel;
    Memo3: TMemo;
    Memo4: TMemo;
    procedure log(linea:string);
    procedure BtnConectaClick(Sender: TObject);
    procedure BtnGetNumlMailsInboxClick(Sender: TObject);
    procedure BtnGetUnreadlMailsClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  GmailUnreadMailsF: TGmailUnreadMailsF;

implementation

{$R *.dfm}


procedure TGmailUnreadMailsF.log(linea:string);
begin
  Memo1.Lines.Add(linea);
end;


procedure TGmailUnreadMailsF.BtnConectaClick(Sender: TObject);
begin
      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv3;
      IdIMAP41.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
      IdIMAP41.Host := 'imap.gmail.com';
      IdIMAP41.Port := 993;
      IdIMAP41.ReadTimeout := 30000;
      IdIMAP41.UseTLS := utUseImplicitTLS;
      IdIMAP41.Username := EditCorreo.Text;
      IdIMAP41.Password := EditPass.Text;
      IdIMAP41.Connect;

      if IdIMAP41.Connected then
      begin
       Label3.Caption := 'Si Conectado';
      end
      else
      begin
       Label3.Caption := 'No Conectado';
      end;


end;

procedure TGmailUnreadMailsF.BtnGetNumlMailsInboxClick(Sender: TObject);
var
 iTotalMsgsInbox : Integer;
begin

        if IdIMAP41.SelectMailBox('INBOX') then
          iTotalMsgsInbox := IdIMAP41.MailBox.TotalMsgs;
          IdIMAP41.StatusMailBox('INBOX', IdIMAP41.MailBox); // este es necesario sino no actualiza los valores


  log('Total de mails en la carpeta de INBOX es : '+ IntToStr(iTotalMsgsInbox) );



end;

procedure TGmailUnreadMailsF.BtnGetUnreadlMailsClick(Sender: TObject);
var
 nummsgs:Integer;
 n : Integer;
 i : Integer;
     TheUID: string;
         TheFlags: TIdMessageFlagsSet;
begin
  log('Total de mails en la carpeta de IdIMAP41.MailBox.UnseenMsgs es : '+ IntToStr(IdIMAP41.MailBox.UnseenMsgs) );
  log('Total de mails en la carpeta de IdIMAP41.MailBox.RecentMsgs es : '+ IntToStr(IdIMAP41.MailBox.RecentMsgs) );

  nummsgs:=idImap41.MailBox.TotalMsgs;

   
    for i := 0 to nummsgs-1 do
    begin
                idimap41.GetUID(i+1, TheUID);
                idimap41.UIDRetrieveFlags(TheUID, TheFlags);
                idimap41.UIDRetrieveHeader(TheUID, IdMessage1);
//                StringGrid1.Cells[0, i+1] := IntToStr(i+1);
            log(IntToStr( i+1) + ' '+ IntToStr(i+1));
//                StringGrid1.Cells[1, i+1] := TheUID;
            log(IntToStr( i+1) +' ' +  TheUID);
                if mfSeen in TheFlags then begin
//                    StringGrid1.Cells[2, i+1] := 'Yes';
             log(IntToStr(i+1 ) + ' ' + 'Yes'  );
                end else begin
//                    StringGrid1.Cells[2, i+1] := 'No';
            log(IntToStr( i+1) + ' ' +  'No');
                end;
//                StringGrid1.Cells[3, i+1] := IdMessage1.Subject;
            log(IntToStr( i+1) + IdMessage1.Subject);
            end;


//            idimap41.Retrieve(1, IdMessage1);
            idimap41.RetrieveHeader(1, IdMessage1);
//            idimap41.RetrieveEnvelope(1, IdMessage1);
            Memo3.Lines.Add(            IdMessage1.FromList.EMailAddresses);
            Memo3.Lines.Add(            IdMessage1.Recipients.EMailAddresses);
            Memo3.Lines.Add(            IdMessage1.Subject);
            Memo3.Lines.Add(            IdMessage1.CCList.EMailAddresses);
            Memo4.Lines.Add(            IdMessage1.Body.Text); // el texto no entra en el memo4 no se como


end;

end.
Responder Con Cita
  #2  
Antiguo 14-05-2019
petercat petercat is offline
Miembro
 
Registrado: feb 2012
Posts: 23
Poder: 0
petercat Va por buen camino
Buenas
Consiguistes extraer el cuerpo y los adjuntos de un correo entrante atraves de gmail??


Un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Enviar datos de una grilla al cuerpo de un mail naty_prog Varios 1 14-01-2013 20:30:59
Archivos adjuntos en mail Cecilio Internet 7 06-11-2007 16:11:48
Problema con archivos adjuntos y cuerpo de mail en indy razadi Internet 4 14-09-2006 09:56:37
Problema con el envio de archivos adjuntos por mail herodes Internet 5 16-08-2005 20:11:00
Enviar HTML en el cuerpo de un e-mail Lionel Internet 9 09-05-2004 23:12:46


La franja horaria es GMT +2. Ahora son las 19:49:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi