PDA

Ver la Versión Completa : Problema con archivos adjuntos y cuerpo de mail en indy


razadi
13-09-2006, 01:35:27
Que tal colegas, tegno un problemin, estoy generando una aplicación que envia mails dependiendo una base de datos, de manera automática, es decir, yo selecciono los registros y le doy enviar y empieza a mandarme los mails con el cuerpo de un archivo .htm, esto porque quiero que el mail que llegue tenga el formato de HTML, al hacerlo me lo hace a la perfección pero si le agrego un archivo adjunto al TIdAttachment (INDY), con la siguiente sintaxis
TIdAttachment.Create(mail.MessageParts, sArchivoPDF);
donde mail es el TIdMessage (indy) y sArchivoPDF es el archivo a adjuntar, no me marca error pero el mail que llega ya no tiene formato HTML y me despliega en modo tesxto incluyendo los TAG del archivo .htm.

Yo se que ustedes me puedn ayudar, por eso de antemano les doy las gracias.
Saludos.

Bicho
13-09-2006, 09:31:31
Yo tenia el mismo problema, y escribí el hilo pero se ve que en una de estas veces que nos quedamos sin servidor y se borraron mensajes el mio estaba se fué también, porque no lo encuentro.

Me ocurre lo mismo, envió un mail, con el componente NMFTP con el body en formato HTML y funciona, pero cuando quiero insertar un fichero adjunto (en mi caso un txt) se pierde el formato del body del mail.

Menos mal que por ahora mis usuarios no requieren enviar el txt.

Bueno a ver si alguien nos puedo comentar algo al respecto.

Saludos

razadi
14-09-2006, 00:44:20
Foro, encontre la solución al hilo que inicie, y aqui lo pongo por si a alguien le sirve, saludos.

{Creo el mensaje del mail}
lMessage := TIdMessage.Create(Self);
try
lMessage.From.Name := sSenNomMail;
lMessage.From.Address := sSenderMail;
with lMessage.Recipients.Add do begin
Name := sNomCliente;
Address := sMailCliente;
end;
{Aqui agrego las copias}
with lMessage.CCList.Add do begin
Name := 'Cliente';
Address := 'razadi33@hotmail.com';
end;{del with}
lMessage.Subject := sAsuntoMail;
lMessage.Body.Text := '';
{Creo el cuerpo en TXT}
lTextPart := TIdText.Create(lMessage.MessageParts);
lTextPart.Body.Text := 'Sistemas';
lTextPart.ContentType := 'text/plain';
{Aqui creo el cuerpo en HTML}
lTextPart := TIdText.Create(lMessage.MessageParts);
lTextPart.Body.Text := '<html><body><b>Aqui se pone el código en HTML</b><br><b>Puede poner, cualquier objeto</b><br><i>O puede incluir archivos HTML</i></body></html>';
lTextPart.ContentType := 'text/html';
lMessage.Priority := mpNormal;
{Creo el archivo adjunto}
lAttachPart := TIdAttachment.Create(lMessage.MessageParts, sArchivoPDF);
EnviarMail(lMessage);
finally
lMessage.Free;
end;{del try..finally}
end;{del for de las facturas seleccionadas}

Bicho
14-09-2006, 09:31:19
Ok, muchas gracias, cuando tenga un momento lo pruebo y digo si me ha funcionado tambien.

Saludos

dec
14-09-2006, 09:56:37
Hola,


(...) le doy enviar y empieza a mandarme los mails con el cuerpo de un archivo .htm, esto porque quiero que el mail que llegue tenga el formato de HTML, al hacerlo me lo hace a la perfección pero si le agrego un archivo adjunto al TIdAttachment (INDY), con la siguiente sintaxis



Me ocurre lo mismo, envió un mail, con el componente NMFTP con el body en formato HTML y funciona, pero cuando quiero insertar un fichero adjunto (en mi caso un txt) se pierde el formato del body del mail.


Bueno. Parece que Razadi encontró ya una solución, pero, ¿no es extraño que os ocurriera a los dos lo mismo utilizando distintos componentes? ¿No será acaso algo que tenga que ver con el cliente, con el Gestor de correo? Claro que, si se ha encontrado una solución... pero, no he podido dejar de decir esto, porque, desde luego, a mí me extraña que se de el mismo problema en distintos componentes... pareciera como si el "problema" (tal vez no lo sea) estuviera en otro lado... ¿no? ;)