este es un ejemplo de como enviar correos con archivos adjuntos desde delphi 7 utilizando indy 10, en la red hay varios ejemplos pero ninguno que funcionara bien en mi versión de indy pues en su mayoria son de la version 9 y trae algunas diferencias que les explicare.
la version estable y mas reciente la pueden encontrar en la pagina de indy: 
http://www.indyproject.org/index.en.aspx
el código completo se los paso tal cual, sin componentes de la paleta, todo se crea en tiempo de ejecucion, lo tengo en un form con 3 botones uno para cerrar, otro de about, y otro donde invoco la función y llamo le paso los parametros, cabe mencionar que lo tengo asi porque me servira para el desarrollo de una aplicacion mas grande.
la diferencia entre la version 9 y la 10 son unas declaraciones y correciones que se tienen que hacer para actualizar los codigos de las version anterior.
1.- tienes que declarar en el apartado uses IdAttachmentFile antes de declaralo en el apartado de variables de tu funcion de envio, estp es var Adjunto: TIdAttachmentFile;;
2.- ya en la funcion de envio cambia la propiedad de autentificacion de la version 9 a la 10 esto es SMTP.AuthenticationType := atLogin pasa a ser  SMTP.AuthType := atDefault
3.- en la parte de comprobacion  cambia la propiedad de creación del mensaje esto es
TIdAttachment.Create( Mensaje.MessageParts, sAdjunto ) pasa a ser en la version 10 que es la nuestra a
TIdAttachmentFile.Create( Mensaje.MessageParts, sAdjunto )
ya con estos cambios debe funcionar los códigos antiguos.
pantalla del ejemplo
finalmente el código:
en pantallas y abajo en texto para que lo copien.
codigo para copiarlo
unit estadoemail;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdSMTP, IdMessage, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdAttachment;
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
uses
IdAttachmentFile;   //declaracion
procedure EnviarMensaje( sUsuario, sClave, sHost, sAdjunto, sAsunto, sDestino, sMensaje: String );
var
   SMTP: TIdSMTP;
   Mensaje: TIdMessage;
   Adjunto: TIdAttachmentFile; //declaracion de la nueva variable
begin
  SMTP := TIdSMTP.Create( nil );
  SMTP.Username := sUsuario;
  SMTP.Password := sClave;
  SMTP.Host := sHost;
  SMTP.Port := 25;
  //SMTP.AuthenticationType := atLogin;--indy9
  SMTP.AuthType := atDefault;
  Mensaje := TIdMessage.Create( nil );
  Mensaje.Clear;
  Mensaje.From.Name := sDestino;
  Mensaje.From.Address := sDestino;
  Mensaje.Subject := sAsunto;
  Mensaje.Body.Text := sMensaje;
  Mensaje.Recipients.Add;
  Mensaje.Recipients.Items[0].Address := sDestino;
  if sAdjunto <> '' then
  begin
    if FileExists( sAdjunto ) then
     // Adjunto := TIdAttachment.Create( Mensaje.MessageParts, sAdjunto );  --indy9
      Adjunto := TIdAttachmentFile.Create( Mensaje.MessageParts, sAdjunto );
  end
  else
    Adjunto := nil;
  try
    SMTP.Connect;
  except
    raise Exception.Create( 'Error al conectar con el servidor.' );
  end;
  if SMTP.Connected then
  begin
    try
      SMTP.Send( Mensaje );
    except
      raise Exception.Create( 'Error al enviar el mensaje.' );
    end;
    try
      SMTP.Disconnect;
    except
      raise Exception.Create( 'Error al desconectar del servidor.' );
    end;
  end;
  if Adjunto <> nil then
    FreeAndNil( Adjunto );
  FreeAndNil( Mensaje );
  FreeAndNil( SMTP );
  Application.MessageBox( 'Mensaje enviado correctamente.',
    'Fin de proceso',MB_ICONINFORMATION );
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  EnviarMensaje( 'emisor@correo.com.mx', 'contraseña', 'smtp.correo.com.mx',
             'e:\documento.zip', 'Te envio mi documento',
             'receptor@correo.com.mx', 'Adjunto archivo: documento.zip' );
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:= 'ACERCA' + char(13)+ 'DEL AUTOR';
ShowMessage('DESIGN, MARGKETING AND SUPPORT'+ #13 + #13 + 'einvation@gmail.com');
end;
end.
espero les sea de utilidad.