GARANTIR DESCONTO

Fórum Anexar arquivo no Outlook #255200

20/10/2004

0

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


Mariana

Mariana

Responder

Posts

02/11/2004

Zotti

Use essa função
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



Responder

Gostei + 0

02/11/2004

Zotti

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...


Responder

Gostei + 0

12/01/2006

Protocolxp

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...


Responder

Gostei + 0

12/01/2006

Massuda

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.


Responder

Gostei + 0

13/01/2006

Protocolxp

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...


Responder

Gostei + 0

13/01/2006

Massuda

...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.


Responder

Gostei + 0

13/01/2006

Protocolxp

[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...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar