Como enviar anexo usando Indy 10?
Pessoal não estou conseguindo enviar anexo usando o Indy 10
Mudou alguma coisa? Antes no Indy 9 eu enviava normal, agora envia o e-mail mais não o anexo, qual a forma de enviar anexos usando indy 10?
Grato
Adriano.
Mudou alguma coisa? Antes no Indy 9 eu enviava normal, agora envia o e-mail mais não o anexo, qual a forma de enviar anexos usando indy 10?
Grato
Adriano.
Adriano_servitec
Curtidas 0
Respostas
Adriano_servitec
05/07/2008
No indy 9 usava assim
Mais este comando não é aceito pelo indy 10
[b:d6e0b5a32a][color=red:d6e0b5a32a] // TIdAttachment.Create(LIdMessage.MessageParts, FileName);[/color:d6e0b5a32a][/b:d6e0b5a32a]
function TfrmBlibliotecas.EnviaPedEmail(Subject, FileName: String): Boolean;
var
LidSMTP: TIdSMTP;
LIdMessage : TIdMessage;
begin
Result := False;
LidSMTP := TIdSMTP.Create(nil);
while not (LidSMTP.Connected) do // enquanto não conectar, o programa vai ficar tentando conectar infinitamente.
begin
try
LidSMTP.Disconnect;
LidSMTP.Host := FSMTP_Server;
LidSMTP.Port := FSMTP_Port;
LidSMTP.Username := FSMTP_Login;
LidSMTP.Password := FSMTP_Password;
LidSMTP.AuthType := atDefault;
LidSMTP.Connect;
if not LidSMTP.Connected then
Exit;
LIdMessage := TIdMessage.Create(nil);
try
LIdMessage.From.Text := FSMTP_From;
LIdMessage.Recipients.EMailAddresses := FSMTP_To;
LIdMessage.MessageParts.Clear;
{:Foi criado para enviar a mensagem que esta na descricao}
LIdMessage.Body.Text := FSMTP_Message;
TIdAttachment.Create(LIdMessage.MessageParts, FileName);
LIdMessage.Subject := Subject; //File_Name + ´ em ´ + FormatDateTime(´dd/mm/yyyy hh:mm´, Now);
LIdMessage.Priority := mpHighest;
LidSMTP.Send(LIdMessage);
{:Modificado por Adriano - Estou verificando se retorna alguma mensagem de volta para meu e-mail}
LIdMessage.Headers.Values[´Return-Receipt-To´] := FSMTP_From;
LIdMessage.Headers.Add(´disposition-notification-to: <FSMTP_From>´);
LIdMessage.SaveToFile(´c:\LogErros.txt´);
{:Fim da modificação}
Result := True;
finally
LIdMessage.Free;
end;
except
{Não conseguiu conectar, tenta conectar novamente em 1 minuto}
Sleep(1000);
Continue;
end; // try
end; // while
LidSMTP.Disconnect;
LidSMTP.Free;
end;
Mais este comando não é aceito pelo indy 10
[b:d6e0b5a32a][color=red:d6e0b5a32a] // TIdAttachment.Create(LIdMessage.MessageParts, FileName);[/color:d6e0b5a32a][/b:d6e0b5a32a]
GOSTEI 0
Adriano_servitec
05/07/2008
Descobri amigos como anexar arquivos no Indy 10, está ai pra quem precisar
{:Este é para anexar arquivos no indy10 declarar no uses IdAttachmentFile}
TIdAttachmentFile.Create(LIdMessage.MessageParts, FileName);
{:este comando é para o indy 9, não funciona no indy 10}
//TIdAttachment.Create(LIdMessage.MessageParts, FileName);
Uses IdAttachmentFile
function TfrmBlibliotecas.EnviaPedEmail(Subject, FileName: String): Boolean;
var
LidSMTP: TIdSMTP;
LIdMessage : TIdMessage;
begin
Result := False;
LidSMTP := TIdSMTP.Create(nil);
while not (LidSMTP.Connected) do // enquanto não conectar, o programa vai ficar tentando conectar infinitamente.
begin
try
LidSMTP.Disconnect;
LidSMTP.Host := FSMTP_Server;
LidSMTP.Port := FSMTP_Port;
LidSMTP.Username := FSMTP_Login;
LidSMTP.Password := FSMTP_Password;
LidSMTP.AuthType := atDefault;
LidSMTP.Connect;
if not LidSMTP.Connected then
Exit;
LIdMessage := TIdMessage.Create(nil);
try
LIdMessage.From.Text := FSMTP_From;
LIdMessage.Recipients.EMailAddresses := FSMTP_To;
LIdMessage.MessageParts.Clear;
{:Foi criado para enviar a mensagem que esta na descricao}
LIdMessage.Body.Text := FSMTP_Message;
{:Este é para anexar arquivos no indy10 dechar no uses IdAttachmentFile}
TIdAttachmentFile.Create(LIdMessage.MessageParts, FileName);
{:este comando é para o indy 9, não funciona no indy 10}
//TIdAttachment.Create(LIdMessage.MessageParts, FileName);
LIdMessage.Subject := Subject; //File_Name + ´ em ´ + FormatDateTime(´dd/mm/yyyy hh:mm´, Now);
LIdMessage.Priority := mpHighest;
LidSMTP.Send(LIdMessage);
{:Modificado por Adriano - Estou verificando se retorna alguma mensagem de volta para meu e-mail}
LIdMessage.Headers.Values[´Return-Receipt-To´] := FSMTP_From;
LIdMessage.Headers.Add(´disposition-notification-to: <FSMTP_From>´);
LIdMessage.SaveToFile(´c:\LogErros.txt´);
{:Fim da modificação}
Result := True;
finally
LIdMessage.Free;
end;
except
{Não conseguiu conectar, tenta conectar novamente em 1 minuto}
Sleep(1000);
Continue;
end; // try
end; // while
LidSMTP.Disconnect;
LidSMTP.Free;
end;GOSTEI 0
Luizito
05/07/2008
Para um envio completo de email com Indy 10 e RAD Studio:
[url=http://www.usercontrol.net/content/view/15/19/]Artigo[/url]
Um abraço.
[url=http://www.usercontrol.net/content/view/15/19/]Artigo[/url]
Um abraço.
GOSTEI 0
Adriano_servitec
05/07/2008
Obrigado pela dica luizito, mais eu ja tinha resolvido este problema.
Valeu pelo link ai amigo
Valeu pelo link ai amigo
GOSTEI 0