Anexar arquivo no Outlook
Amigos....
Estou desenvolvendo um projeto no Delphi5 que envia mensagens através do Outlook, só que não estou conseguindo anexar um arquivo nesta mensagem.
Alguém sabe que parâmetro devo usar para que, quando a tela de envio do Outlook for aberta o arquivo já estaja em anexo?
Desde já agradeço
Mariana
Estou desenvolvendo um projeto no Delphi5 que envia mensagens através do Outlook, só que não estou conseguindo anexar um arquivo nesta mensagem.
Alguém sabe que parâmetro devo usar para que, quando a tela de envio do Outlook for aberta o arquivo já estaja em anexo?
Desde já agradeço
Mariana
Mariana
Curtidas 0
Respostas
Zotti
20/10/2004
Use essa função
Agora chama a função como o caso abaixo, dai somente alterar os campos de, para, assunto e ter a opção de escrever o diretorio do arquivo no Edit1.Text ou informar via codigo, vc pode usar um
OpenDialog e usar suas propriedades para buscar o diretorio desse arquivo, agora é só tentar, a função acima é só usar, não precisa alterar nada.
function EnviarEMail(const De, Para, Assunto, Texto, Arquivo: string; Confirma: Boolean): Integer; var Msg: TMapiMessage; lpSender, lpRecepient: TMapiRecipDesc; FileAttach: TMapiFileDesc; SM: TFNMapiSendMail; MAPIModule: HModule; Flags: Cardinal; begin // cria propriedades da mensagem FillChar(Msg, SizeOf(Msg), 0); with Msg do begin if (Assunto <> ´´) then lpszSubject := PChar(Assunto); if (Texto <> ´´) then lpszNoteText := PChar(Texto); // remetente if (De <> ´´) then begin lpSender.ulRecipClass := MAPI_ORIG; lpSender.lpszName := PChar(De); lpSender.lpszAddress := PChar(De); lpSender.ulReserved := 0; lpSender.ulEIDSize := 0; lpSender.lpEntryID := nil; lpOriginator := @lpSender; end; // destinatário if (Para <> ´´) then begin lpRecepient.ulRecipClass := MAPI_TO; lpRecepient.lpszName := PChar(Para); lpRecepient.lpszAddress := PChar(Para); lpRecepient.ulReserved := 0; lpRecepient.ulEIDSize := 0; lpRecepient.lpEntryID := nil; nRecipCount := 1; lpRecips := @lpRecepient; end else lpRecips := nil; // arquivo anexo if (Arquivo = ´´) then begin nFileCount := 0; lpFiles := nil; end else begin FillChar(FileAttach, SizeOf(FileAttach), 0); FileAttach.nPosition := Cardinal($FFFFFFFF); FileAttach.lpszPathName := PChar(Arquivo); nFileCount := 1; lpFiles := @FileAttach; end; end; // carrega dll e o método para envio do email MAPIModule := LoadLibrary(PChar(MAPIDLL)); if MAPIModule = 0 then Result := -1 else try if Confirma then Flags := MAPI_DIALOG or MAPI_LOGON_UI else Flags := 0; @SM := GetProcAddress(MAPIModule, ´MAPISendMail´); if @SM <> nil then Result := SM(0, Application.Handle, Msg, Flags, 0) else Result := 1; finally FreeLibrary(MAPIModule); end; end;
Agora chama a função como o caso abaixo, dai somente alterar os campos de, para, assunto e ter a opção de escrever o diretorio do arquivo no Edit1.Text ou informar via codigo, vc pode usar um
OpenDialog e usar suas propriedades para buscar o diretorio desse arquivo, agora é só tentar, a função acima é só usar, não precisa alterar nada.
procedure Tform1.SpeedButton8Click(Sender: TObject); var email : string; begin email := Edit1.Text; assuncont:= DmGlobal.TblblNRBL.asstring; EnviarEMail(´de@email´,´para@email´, ´Assunto´, Edit1.Text, True); end
GOSTEI 0
Zotti
20/10/2004
Mariana esqueci de mencionar ter que mencionar esse item no topo da unit na cls uses MAPI, na unit que vc mencionar a função, pode usa-la que foi destada e aprovada.
Até mais...
Até mais...
GOSTEI 0
Protocolxp
20/10/2004
Mariana esqueci de mencionar ter que mencionar esse item no topo da unit na cls uses MAPI, na unit que vc mencionar a função, pode usa-la que foi destada e aprovada.
Até mais...
Zotti??? Vc teria um código usando o Mapi do VB para enviar anexos pelo outlook??? as tb não sei se este código abre a janela do outlook?? O que precisaria fazer é apertar um botão em meu projeto do VB e abrir a janela do outlook com o e-mail de envio, e o anexo, tem como fazer isso??? se tiver uma solução me ajude, por favor, obrigado...
GOSTEI 0
Massuda
20/10/2004
Vc teria um código usando o Mapi do VB...
VB?!?!? Talvez fosse mais indicado você procurar em um fórum com seções/áreas voltadas para VB.GOSTEI 0
Protocolxp
20/10/2004
Desculpe!!! mas vc respondeu uma dúvida colocando código de Delphi, então só perguntei se vc não tinha um com VB, pq então não disse o mesma para a menina que perguntou??? Só pq ela é mulher e eu sou homem??? Desculpe o incomodo, da proxima vez nem pergunto nada...
GOSTEI 0
Massuda
20/10/2004
...pq então não disse o mesmo para a menina que perguntou??? Só pq ela é mulher e eu sou homem???...
Não tem nada a ver... Ela informou no primeiro post do tópico que......estou desenvolvendo um projeto no Delphi5...
...por isso o zotti (não eu) respondeu com um código em Delphi.GOSTEI 0
Protocolxp
20/10/2004
[quote:d25d23960a=´protocolxp´]Vc teria um código usando o Mapi do VB...
VB?!?!? Talvez fosse mais indicado você procurar em um fórum com seções/áreas voltadas para VB.[/quote:d25d23960a]Me desculpe mas uma vezx então, estou confundindo tudo aqui neste forum, não costumo usar foruns com frequencia...vou perguntar de novo para o zotti desta vez...
GOSTEI 0