Anexar no Outlook express
Utilizo o comando abaixo para chamar o navegador padrão, e colocar o email o o assunto automático. Queria saber se desta forma, seria capaz de anexar um arquivo?
comando:
ShellExecute(Handle, ´open´, pChar(´mailto:email@email.com.br´ , ´´, ´´, SW_SHOW);
trabalho com outras formas de envio direta, sem chamar o outlook, mas neste caso preciso utilizá-lo.
[]s
comando:
ShellExecute(Handle, ´open´, pChar(´mailto:email@email.com.br´ , ´´, ´´, SW_SHOW);
trabalho com outras formas de envio direta, sem chamar o outlook, mas neste caso preciso utilizá-lo.
[]s
Andre0201
Curtidas 0
Respostas
Massuda
10/03/2005
O comando [b:35a3810755]mailto[/b:35a3810755] não suporta anexos. O padrão é ter apenas as opções subject, cc, bcc e body. A sintaxe do mailto é definida na [url=http://www.faqs.org/rfcs/rfc2368.html]RFC 2368[/url].
Se quiser ter anexos na mensagem, use MAPI ou uma das bibliotecas/componentes existentes para envio de e-mail.
Se quiser ter anexos na mensagem, use MAPI ou uma das bibliotecas/componentes existentes para envio de e-mail.
GOSTEI 0
Andre0201
10/03/2005
Massuda,
Com MAPI eu consigo anexar no outlook? se sim vc tem algum material?
Com MAPI eu consigo anexar no outlook? se sim vc tem algum material?
GOSTEI 0
Massuda
10/03/2005
Com MAPI eu consigo anexar no outlook? se sim vc tem algum material?
Neste [url=http://forum.clubedelphi.net/viewtopic.php?t=53412]tópico do fórum[/url], o colega zotti apresenta um código para enviar um arquivo anexado via MAPI (não testei, mas imagino que funcione).GOSTEI 0
Faelcavalcanti
10/03/2005
Cara, tenta esse código aqui. Ele envia para qualquer e-mail padrão no sistema, você terá que ficar de olho em Opções de Internet e verificar qual o e-mail padrão do computador. Isso facilita muito o usuário a interagir com o sistema de forma mais flexível.
[b:90f340b2e2]Gostaria de aproveitar este espaço para saber como faço para abrir a janela [Opções de Internet], já com a aba [Programas] aberta ??? [/b:90f340b2e2]
:wink:
Espero ter ajudado!
function TFEMail.f_Processar(Handle: THandle; Mail: TStrings): Cardinal; type TAttachAccessArray = array [0..0] of TMapiFileDesc; PAttachAccessArray = ^TAttachAccessArray; var MapiMessage: TMapiMessage; Receip: TMapiRecipDesc; Attachments: PAttachAccessArray; AttachCount: Integer; i1: integer; FileName: string; dwRet: Cardinal; MAPI_Session: Cardinal; WndList: Pointer; begin dwRet := MapiLogon(Handle, PChar(´´), PChar(´´), MAPI_LOGON_UI or MAPI_NEW_SESSION, 0, @MAPI_Session); if (dwRet <> SUCCESS_SUCCESS) then begin MessageBox(Handle, PChar(´Erro ao tentar enviar e-mail´), PChar(´Rafael Cavalcanti - Recife-PE´), MB_ICONERROR or MB_OK); end else begin FillChar(MapiMessage, SizeOf(MapiMessage), #0); Attachments := nil; FillChar(Receip, SizeOf(Receip), 0); if Mail.Values[´to´] <> ´´ then begin Receip.ulReserved := 0; Receip.ulRecipClass := MAPI_TO; Receip.lpszName := StrNew(PChar(Mail.Values[´to´])); Receip.lpszAddress := StrNew(PChar(´SMTP:´ + Mail.Values[´to´])); Receip.ulEIDSize := 0; MapiMessage.nRecipCount := 1; MapiMessage.lpRecips := @Receip; end; AttachCount := 0; for i1 := 0 to MaxInt do begin if Mail.Values[´attachment´ + IntToStr(i1)] = ´´ then break; Inc(AttachCount); end; if AttachCount > 0 then begin GetMem(Attachments, SizeOf(TMapiFileDesc) * AttachCount); for i1 := 0 to AttachCount - 1 do begin FileName := Mail.Values[´attachment´ + IntToStr(i1)]; Attachments[i1].ulReserved := 0; Attachments[i1].flFlags := 0; Attachments[i1].nPosition := ULONG($FFFFFFFF); Attachments[i1].lpszPathName := StrNew(PChar(FileName)); Attachments[i1].lpszFileName := StrNew(PChar(ExtractFileName(FileName))); Attachments[i1].lpFileType := nil; end; MapiMessage.nFileCount := AttachCount; MapiMessage.lpFiles := @Attachments^; end; if Mail.Values[´subject´] <> ´´ then MapiMessage.lpszSubject := StrNew(PChar(Mail.Values[´subject´])); if Mail.Values[´body´] <> ´´ then MapiMessage.lpszNoteText := StrNew(PChar(Mail.Values[´body´])); WndList := DisableTaskWindows(0); try Result := MapiSendMail(MAPI_Session, Handle, MapiMessage, MAPI_DIALOG, 0); finally EnableTaskWindows( WndList ); end; for i1 := 0 to AttachCount - 1 do begin StrDispose(Attachments[i1].lpszPathName); StrDispose(Attachments[i1].lpszFileName); end; if Assigned(MapiMessage.lpszSubject) then StrDispose(MapiMessage.lpszSubject); if Assigned(MapiMessage.lpszNoteText) then StrDispose(MapiMessage.lpszNoteText); if Assigned(Receip.lpszAddress) then StrDispose(Receip.lpszAddress); if Assigned(Receip.lpszName) then StrDispose(Receip.lpszName); MapiLogOff(MAPI_Session, Handle, 0, 0); end; end;
[b:90f340b2e2]Gostaria de aproveitar este espaço para saber como faço para abrir a janela [Opções de Internet], já com a aba [Programas] aberta ??? [/b:90f340b2e2]
:wink:
Espero ter ajudado!
GOSTEI 0
Andre0201
10/03/2005
Valeu a todos, massuda utilizei o exemplo do MAPI e funcionou perfeitamente.
Gratos
Gratos
GOSTEI 0
Rômulo Barros
10/03/2005
[color=red:ad0b1b4dca][u:ad0b1b4dca][b:ad0b1b4dca]A respeito do email pelo Outlook:[/b:ad0b1b4dca][/u:ad0b1b4dca][/color:ad0b1b4dca]
Os outros itens do Painel de Controle podem ser acessados mudando-se o nome do arquivo .cpl, exemplo:
- Modem.cpl
- Netcpl.cpl
[color=red:ad0b1b4dca][b:ad0b1b4dca]Para localizar todos os arquivos .cpl q estão no painel de controle, vá na System32 do windowns e localize todos os arquivos com a extensão .cpl[/b:ad0b1b4dca][/color:ad0b1b4dca]
const olMailItem = 0; var Outlook: OLEVariant; MailItem: Variant; begin try Outlook:=GetActiveOleObject(´Outlook.Application´); except Outlook:=CreateOleObject(´Outlook.Application´); end; MailItem := Outlook.CreateItem(olMailItem); with MailItem do begin Recipients.Add(´email@email.com´); Subject := ´Assunto´; Body := ´corpo da mensagem´; Attachments.Add(´C:\Windows\Win.ini´); Send; end; Outlook := Unassigned; end;
Gostaria de aproveitar este espaço para saber como faço para abrir a janela [Opções de Internet], já com a aba [Programas] aberta ???
WinExec(PChar(´rundll32.exe shell32.dll,´ + ´Control_RunDLL ´ + ´inetcpl.cpl´),SW_SHOWNORMAL);
Os outros itens do Painel de Controle podem ser acessados mudando-se o nome do arquivo .cpl, exemplo:
- Modem.cpl
- Netcpl.cpl
[color=red:ad0b1b4dca][b:ad0b1b4dca]Para localizar todos os arquivos .cpl q estão no painel de controle, vá na System32 do windowns e localize todos os arquivos com a extensão .cpl[/b:ad0b1b4dca][/color:ad0b1b4dca]
GOSTEI 0
Faelcavalcanti
10/03/2005
Valeu cara, também sou de Recife. Estava só precisando para um cliente chato que estava com preguiça de ir ao painel de controle para setar qual o e-mail padrão. Sabe usuário como é que é.
GOSTEI 0
Rômulo Barros
10/03/2005
Valeu cara, também sou de Recife.
:arrow: [u:343d8b235e][b:343d8b235e]Beleza !!! [/b:343d8b235e][/u:343d8b235e] :wink: :wink: :wink:
GOSTEI 0