Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Adjunto noname en mail con Indy (https://www.clubdelphi.com/foros/showthread.php?t=63500)

DrkMgc 17-02-2009 14:19:01

Adjunto noname en mail con Indy
 
Hola Foro!

Resulta que hice un programa para mandar mails, y quise añadirle la posibilidad de adjuntar archivos. Saqué las referencias de este foro como para guiarme.

No tengo ningún error. El problema se da cuando reviso mi correo. Recibo el archivo adjunto, pero con el nombre 'noname', sin extensión, y así se baja. Evidentemente es el archivo que adjunto, porque si adjunto un *.doc, bajo el 'noname' y lo abro con Word, y puedo ver el contenido sin problemas, igual con las imagenes y con los pdf.

Les paso el código para el envío:
Código Delphi [-]
procedure TFormMensaje.ButtonEnviarClick(Sender: TObject);
begin
  ProgressBar1.Visible := True;
  IdSMTP.Host := EditSMTP.Text;
  IdSMTP.Username := EditUsuario.Text;
  IdSMTP.Password := EditPassword.Text;
  if not IdSMTP.Connected then
    IdSMTP.Connect;
  IdMessage.From.Address := EditPara.Text;
  IdMessage.From.Name := EditNombre.Text;
  IdMessage.Body := MemoMensaje.Lines;
  IdMessage.Subject := EditAsunto.Text;
  IdMessage.Recipients.EMailAddresses := EditPara.Text;
  IdSMTP.Send(IdMessage);
  Application.MessageBox('Mensaje enviado.', 'Aviso', MB_OK + MB_ICONINFORMATION);
end;


Este es el código para adjuntar:

Código Delphi [-]
if OpenDialogAdjunto.Execute then
  begin
    //LabelRuta.Caption :=  TIdAttachmentFile.Create(IdMessage.MessageParts, OpenDialogAdjunto.FileName).FileName;
    LabelRuta.Caption :=  TIdAttachmentFile.Create(IdMessage.MessageParts, 'D:\Dibujo.jpg').FileName;
  end;

¿Cómo puedo hace para que el archivo se adjunte con su nombre y extensión original?

Thanks in advance!

Caro 17-02-2009 15:03:18

Hola, yo lo hago así directo y me lo envía bien. El FileName del TIdAttachmentFile yo lo utilizo para recuperar archivos adjuntos, cuando lees el correo con TidPOP3.

Código Delphi [-]
if OpenDialogAdjunto.Execute then
  begin
    TIdAttachmentFile.Create(IdMessage.MessageParts, OpenDialogAdjunto.FileName);
    LabelRuta.Caption := OpenDialogAdjunto.FileName;
  end;

Saluditos

DrkMgc 17-02-2009 18:18:02

Gracias por responder.

He intentado aplicar tu código, pero tengo los mismos resultados.

Algo que olvidé poner es que además de usar un IdSMTP y un IdMessage de los Indy, uso un IdSSLIOHandlerSocketOpenSSL porque para enviar mails para Gmail, necesito eso para establece una conexión segura... quizás eso influye...

Caro 17-02-2009 18:31:42

Hola de nuevo, no creo que influya, hace un tiempo también hice pruebas con una cuenta de gmail utilizando TIdSSLIOHandlerSocketOpenSSL e Indy10 y no he tenido problemas.

Saluditos

DrkMgc 17-02-2009 18:44:51

Hola, y gracias de nuevo...

No me explico cuál puede ser el problema... te paso una captura para que veas cómo llega el mensaje

http://farm4.static.flickr.com/3583/...51a539fa_o.jpg

Estoy usando Delphi 2009 con Indy 10 sobre Windows Vista

PaCmAn72 08-09-2010 11:12:53

Hola a todos, yo tengo el mismo problema. ¿Lo solucionaste ya o aun sigue sin solucion?
Un saludo.

IVAND 02-01-2023 14:56:23

Hola a tos feliz anio , tengo el mismo problema

Casimiro Notevi 02-01-2023 19:30:29

Hola, feliz año a ti también ^\||/
¿Qué código estás usando?
Código Delphi [-]
  if OpenDialogAdjunto.Execute then  
  begin     
    TIdAttachmentFile.Create(IdMessage.MessageParts, OpenDialogAdjunto.FileName);     
    LabelRuta.Caption := OpenDialogAdjunto.FileName;   
end;

IVAND 03-01-2023 00:48:58

Gracias por responder , si con la misma forma , uso delphi 2009 y los indy que vienen por defecto , uso el mismo codigo en delphi 11 y funciona sin problemas , parece que algo me falta en delphi 2009
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var smtp:TIdSMTP;
  mail:TIdMessage;
  Attachmentfile: TIdAttachmentFile;
begin
    smtp := TIdSMTP.Create(Self);
      Mail := TIdMessage.Create(Self);
      with smtp do
      begin

        Port:=465;
        Host:= 'smtp.gmail.com';
        Username:='comcasanova2018sa@gmail.com';
        Password:='hyzvtyccwttttt';  // 
        IOHandler:=SSLIOHandler;
        UseTLS := utUseExplicitTLS;
        AuthType:=satDefault ;
      end;

      SSLIOHandler.Port:= 465;
      SSLIOHandler.Host:= 'smtp.gmail.com';
      SSLIOHandler.Destination:='smtp.gmail.com:' + IntToStr(SSLIOHandler.Port);

      with mail do
      begin
        Recipients.Add;
        Recipients[0].Name   :='SitiSystems';
        Recipients.EmailAddresses:='ivand2011@gmail.com';
        From.Name            :='Integral ERP';
        From.Address         :='comcasanova2018sa@gmail.com';
        Subject              :='Se ha enviado un documento electronico';
        Body.Text:='Prueba de correo..revise adjunto'; // Es el texto del mensaje
        //ContentType := 'text / plain';
        CharSet      := 'utf-8';
        Encoding     := meMIME;
        Priority     := mpNormal;
        ContentType := 'multipart/mixed';
      end;
      Attachmentfile:=TIdAttachmentFile.Create(mail.MessageParts,'C:\Embajada\Ruc.pdf');
   //   Attachmentfile.FileName:='C:\Embajada\Ruc.pdf';
   //   Attachmentfile.ContentType := 'application/octet-stream';
   //   Attachmentfile.ContentID:='C:\Embajada\Ruc.pdf';
  //    Attachmentfile.DisplayName:='C:\Embajada\Ruc.pdf';
      try
        smtp.Connect;
      except
        ShowMessage('Ocurred an Error, The Message was not Sent');
      end;
        Screen.Cursor:=CrDefault;

      try
        smtp.Send(mail);
      except
      //on E: Exception do
        ShowMessage('The Message was not Sent');
      end;

      if smtp.Connected then
        smtp.Disconnect;
      mail.Free;
      smtp.Free;
end;

en uno funciona bien en otro no , que puede estar pasando , esperando sus consejos 
en 2009 envia el correo perfecto pero adjunta el archivo como noname y en delphi 11

Casimiro Notevi 03-01-2023 10:09:02

Prueba cambiando esto:
Código Delphi [-]
Attachmentfile:=TIdAttachmentFile.Create(mail.MessageParts,'C:\Embajada\Ruc.pdf');
por esto otro:
Código Delphi [-]
TIdAttachmentFile.Create(mail.MessageParts,'C:\Embajada\Ruc.pdf');

IVAND 03-01-2023 13:08:37

Muy gentil por darte el tiempo , si efectivamente ya probe esa opcion , sigue colocando el nombre nomame , si lo descargo y renombro se abre sin problemas

Puede ser errror de los indy ?

Casimiro Notevi 03-01-2023 14:18:02

Cita:

Empezado por IVAND (Mensaje 549777)
Muy gentil por darte el tiempo , si efectivamente ya probe esa opcion , sigue colocando el nombre nomame , si lo descargo y renombro se abre sin problemas
Puede ser errror de los indy ?

No creo, más bien diría que será algo del programa que uses para descargar los emails.
Por probar, envíame un email a esta dirección, para echarle un vistazo.


IVAND 03-01-2023 14:45:21

Te envio ahora , pero creo que no, porq el otro sistema con el mismo codigo lo envio y llega y el programa para abrir el correo es gmail mismo

Casimiro Notevi 03-01-2023 14:49:33

Yo lo leo con Thunderbird, y esto es lo que me llega:


IVAND 03-01-2023 14:59:43

te envie desde delphi 11 con el mismo codigo y veras q llega un pdf , para que veas la diferencia , pero si descargar el primer archivo de daras cuenta que se descarga con nomame si extension

Casimiro Notevi 03-01-2023 15:12:32

El anterior se guardó tal y como pone: Parte 1.2 y este como Ruc.pdf




IVAND 03-01-2023 15:34:29

que sera de poner adicional al codigo , es como que faltaria poner alguna opcion en codigo delphi 2009

Casimiro Notevi 03-01-2023 16:41:47

No entiendo lo que comentas, me parece entender que si pones Ruc.pdf llega bien y si pones Parte 1.2 entonces no llega bien, ¿es eso?

IVAND 03-01-2023 17:06:44

te explico mejor , tengo dos sistemas con exactamente el mismo codigo

1 delphi 2009 envio el archivo igual pero llega con el nombre de noname o como te llega a ti parte 1.2 (nombre original ruc.pdf)

2 delphi 11 mismo codigo de delphi 2009 llega perfecto con el adjunto como debe de ser ruc.pdf

por eso te indico q es como que en delphi 2009 falataria algun comando para q se suba bien el archivo

(en ambos delphi uso el mismo codigo exactamente igual y las mismas librerias para que funcione el ssl)

(nota en los dos sistemas el archivo que quiero enviar se llama ruc.pdf) pero desconosco el motivo porque en delphi 2009 se envia como noname , he buscado en varios sitios pero todos ponen lo mismo que he puesto yo

Casimiro Notevi 03-01-2023 17:08:33

¿Seguro, seguro, seguro... que es mismo código?


La franja horaria es GMT +2. Ahora son las 08:45:52.

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