Como enviar anexo usando Indy 10?
05/07/2008
0
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
Posts
05/07/2008
Adriano_servitec
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]
05/07/2008
Adriano_servitec
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;
08/07/2008
Luizito
[url=http://www.usercontrol.net/content/view/15/19/]Artigo[/url]
Um abraço.
08/07/2008
Adriano_servitec
Valeu pelo link ai amigo
Clique aqui para fazer login e interagir na Comunidade :)