Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-10-2007
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
Archivos adjuntos en mail

Hola a todos.

He creado un pequeño programa que envia e-mail. hasta el momento todo iba bien.

Se me ocurrió poder agregar aduntos que pongo en una ListBox, pero no va:
Código:
    for I := 0 to adjunto.Items.Count - 1 do
      begin
         if Fileexists(adjunto.Items[i]) then
           tIdAttachment.Create(idMessage.MessageParts , adjunto.Items[i]);

      end;
El problema es que me dice que hay demasiados parámetros en el create.
En uses he tenido que agregar a mano IdAttachment porque no me reconcia TidAttachment

Mensajes de error:
[DCC Error] MMail.pas(142): E2034 Too many actual parameters
y
[DCC Warning] MMail.pas(142): W1020 Constructing instance of 'TIdAttachment' containing abstract method 'TIdAttachment.OpenLoadStream'

El primero lo entiendo el segundo no. Puede que no esté bien declarado en Uses ? o ¿ hay que agregar algun componente más ?
__________________
Saludos Cordiales.
------------------

Responder Con Cita
  #2  
Antiguo 28-10-2007
fide fide is offline
Miembro
 
Registrado: oct 2006
Posts: 331
Poder: 18
fide Va por buen camino
Lightbulb Eniar archios adjuntos...

Bueno, aqui te mando el codigo que utiliza el demo de la Indy de nombre MailClient para adicionar adjuntos al tidMessage...

Ha, esto es con la Indy 9...

Aqui la forma en que agregan un adjunto...

Código Delphi [-]
procedure AddAttachment;
begin
   if OpenDialog1.Execute then
      begin
         TIdAttachment.Create(IdMsgSend.MessageParts, OpenDialog1.FileName);
         ResetAttachmentListView;
      end;
end;

Aqui como lo gestionan...

Código Delphi [-]
procedure ResetAttachmentListView;
var li: TListItem;
   idx: Integer;
begin
   lvFiles.Items.Clear;
   for idx := 0 to Pred(IdMsgSend.MessageParts.Count) do
      begin
         li := lvFiles.Items.Add;
         if IdMsgSend.MessageParts.Items[idx] is TIdAttachment then
            begin
               li.ImageIndex := 0;
               li.Caption := TIdAttachment(IdMsgSend.MessageParts.Items[idx]).Filename;
               li.SubItems.Add(TIdAttachment(IdMsgSend.MessageParts.Items[idx]).ContentType);
            end
         else
            begin
               li.ImageIndex := 1;
               li.Caption := IdMsgSend.MessageParts.Items[idx].ContentType;
            end;
      end;
end;

Espero esto te sirva, de todos modos puedes descargar los demos de la pagina de la Indy, para que te documentes mas okas...

Última edición por fide fecha: 28-10-2007 a las 03:32:43.
Responder Con Cita
  #3  
Antiguo 28-10-2007
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
Yo uso las que vienen con Delphi 2007

Ese procedimiento que me envias lo ejecuto y me da los errores que describia.

Por cierto cual es la web de las Indy ?
__________________
Saludos Cordiales.
------------------

Responder Con Cita
  #4  
Antiguo 29-10-2007
fide fide is offline
Miembro
 
Registrado: oct 2006
Posts: 331
Poder: 18
fide Va por buen camino
Lightbulb

Cita:
Empezado por Cecilio Ver Mensaje
Yo uso las que vienen con Delphi 2007

Ese procedimiento que me envias lo ejecuto y me da los errores que describia.

Por cierto cual es la web de las Indy ?
Bueno, puedes buscar la pagina en el google, aunque creo que es
http://www.indyproject.org
Responder Con Cita
  #5  
Antiguo 29-10-2007
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
No consigo que funcione de ninguna forma.

¿ Alguna idea ? está en Delphi 2007 No se que versión será de las Indy

Estoy por intentarlo en Delphi 7 a ver si funciona.

Voy a poner el trozo de código por si a caso:
Código:
 with idMessage do begin
    // Cuerpo del mensaje.
    Body.Clear;
    Body.Assign(texto.Lines);
    ContentType := 'text/html';
    // Cuenta Origen.
    From.Name:=config.enombre.Text;
    From.address := config.eusuario.Text;
    ReplyTo.EMailAddresses:=config.erespuesta.Text;
    // Asunto del email.
    Subject := edit1.Text;
    // Prioridad del mensaje, ALTA.
    Priority := TidMessagePriority(mpHighest);
    // Coloco el archivo adjunto el cual enviar.

    //TidAttachment.Create(idMensage.MessageParts,ARCHIVOADJUNTO);
    for I := 0 to adjunto.Items.Count - 1 do
      begin
         if Fileexists(adjunto.Items[i]) then
           tIdAttachment.Create(MessageParts, adjunto.items[i]);


      end;
    end;
Los Uses:
Código:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, IdMessage, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdSMTPBase, IdSMTP,IdAttachment, Menus, ExtCtrls;
El IdAttachment lo agregue yo en los Uses, porque no estaba y no lo reconocia.
__________________
Saludos Cordiales.
------------------

Responder Con Cita
  #6  
Antiguo 29-10-2007
fide fide is offline
Miembro
 
Registrado: oct 2006
Posts: 331
Poder: 18
fide Va por buen camino
Lightbulb Enviar archivos...

Oyeme. Todo eso que pones esta muy bien y no se por que da error. Mira, por que no haces eso en delphi 7 que es donde yo se que no te va a dar error he???
Responder Con Cita
  #7  
Antiguo 30-10-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Seguramente estas usando Indy 10.

Lo digo de memoria... pero la clase TidAttachment se convirtió en una clase abstracta... ahora debe haber una clase TidFileAttachment, para el caso de los adjuntos que se originan en un archivo del sistema.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 06-11-2007
caio caio is offline
Registrado
 
Registrado: may 2003
Ubicación: Rosario, Argentina
Posts: 9
Poder: 0
caio Va por buen camino
La clase se llama TIdAttachmentFile. Lo probe y funciona perfectamente. En el uses hay que agregar IdAttachmentFile.
Responder Con Cita
Respuesta



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
Problema al abrir archivos adjuntos vick Internet 1 24-03-2007 07:20:41
Problema con archivos adjuntos y cuerpo de mail en indy razadi Internet 4 14-09-2006 09:56:37
pop3 y archivos adjuntos !! seba_cipo Internet 2 19-12-2005 14:09:28
Descargar archivos adjuntos con NMPOP3 gaska OOP 0 30-11-2005 18:09:54
Problema con el envio de archivos adjuntos por mail herodes Internet 5 16-08-2005 20:11:00


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


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