Página 1 de 1

enviar email via outlook

Enviado: 28 Jan 2014 19:14
por Amparo
Feliz 2014

um grande abraço a todos os colegas, em especial para toledo, hasse, sygecom, asimoes, rochinha, pablo, billy1943, hasa e alxsts

Toledo, estava eu dando uma fuçada para ver se achava algo sobre o Outlook, quando vi um exemplo seu cfe abaixo, fiz algumas mudanças para adaptar ao meu sistema e tudo mais, foi quando tentei colocar uma linha para anexar um arquivo e não obtive sucesso, pesquisei procurei e não cheguei a nenhuma solução, sera que os colegas poderiam me emprestar (RSRSR) uma luz para o fim deste túnel?

exemplo do Toledo:

Código: Selecionar todos

 ITEM 'Enviar' ACTION ShellExecute( 0, "open", "rundll32.exe", ;
               "url.dll,FileProtocolHandler " + ;
               "mailto:"+cEmailDest+"?cc=&bcc=" + ;
               "&subject="+cAssunto + ;
               "&body="+cMensagem, , 1 )

Código: Selecionar todos

eu mudei desta forma e não funcionou, abre o Outlook só não vem o anexo

      ITEM 'Enviar' ACTION ShellExecute( 0, "open", "rundll32.exe", ;
               "url.dll,FileProtocolHandler " + ;
               "mailto:"+cEmailDest+"?cc=&bcc=" + ;
               "&subject="+cAssunto + ;
	       "&attach=c:\teste.txt" + ;
               "&body="+cMensagem, , 1 )
abraço a todos

enviar email via outlook

Enviado: 29 Jan 2014 09:02
por Toledo
Amparo, este exemplo era para executar com o Outlook Express, utilizando o comando mailto: que permite preencher alguns campos da mensagem que será enviada. Mas infelizmente estes campos pré-formatados é limitado, permitindo apenas o preenchimento dos seguintes campos:
  • Para
  • Cc
  • Bcc
  • Assunto
  • Corpo da mensagem
Utilizando o comando mailto: não é possível enviar arquivos em anexo.

Acho que com o Outlook (não o Outlook Express, é a versão que vem com o Office) tem como anexar arquivos criando o objeto OLE (Outlook.Application).

Abraços,

enviar email via outlook

Enviado: 24 Fev 2014 16:23
por rbonotto
Estou tentando usar o código acima mas o harbour não reconheçe o comando ShellExecute, usando o windows XP

Código: Selecionar todos

# INCLUDE 'inkey.ch'

cEmailDest := 'xxxxxxxxxxxxxx@xxx.xxx.xx'
cAssunto   := 'relatorio'
cMensagem  := 'teste'

     ShellExecute( 0, "open", "rundll32.exe", ;
     "url.dll,FileProtocolHandler " + ;
     "mailto:"+cEmailDest+"?cc=&bcc=" + ;
     "&subject="+cAssunto + ;
     "&body="+cMensagem, , 1 )
A mensagem de erro de compilação:

hbmk2: Linking... programa.exe
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_SHELLEXECUTE' referenced from C:\......

enviar email via outlook

Enviado: 24 Fev 2014 17:42
por alxsts
Olá!

Como você está compilando?

ShelExecute() pertence à HbWin:

Código: Selecionar todos

HbMk2 Programa -lHbWin

enviar email via outlook

Enviado: 24 Fev 2014 19:14
por rbonotto
Ola,

c:\minigui\harbour\bin\hbmk2 sistema.hb

Conteudo do arquivo sistema.hb

Código: Selecionar todos

-oprograma
-lhbct
-lxhb
-lhbwin
-llibpng
-gtwvt
-incpath=c:\minigui\harbour\include
-Lc:\minigui\harbour\lib
-inc

enviar email via outlook

Enviado: 24 Fev 2014 22:25
por Toledo
Amigos, esta função ShellExecute() é da LIB MiniGui, então se o programa está sendo compilado em modo console, não vai dar certo.

Código da função que está na MiniGui:

Código: Selecionar todos

HB_FUNC( SHELLEXECUTE )
{
   hb_retnl
   (
      ( LONG ) ShellExecute
      (
         ( HWND ) hb_parnl( 1 ),
         HB_ISNIL( 2 ) ? NULL : ( LPCTSTR ) hb_parc( 2 ),
         ( LPCSTR ) hb_parc( 3 ),
         HB_ISNIL( 4 ) ? NULL : ( LPCTSTR ) hb_parc( 4 ),
         HB_ISNIL( 5 ) ? NULL : ( LPCTSTR ) hb_parc( 5 ),
         hb_parni( 6 )
      )
   );
}
Acho que no Harbour tem a função wapi_ShellExecute().

Abraços,

enviar email via outlook

Enviado: 24 Fev 2014 23:37
por alxsts
Olá!

Exatamente Toledo: wapi_ShellExecute()

Código: Selecionar todos

HB_FUNC( WAPI_SHELLEXECUTE )
{
#if defined( HB_OS_WIN_CE )
   hb_retni( -1 );
#else
   void * hOperation;
   void * hFile;
   void * hParameters;
   void * hDirectory;

   hb_retnint( ( HB_PTRDIFF ) ShellExecute( ( HWND ) hb_parptr( 1 ),
                                            HB_PARSTR( 2, &hOperation, NULL ), /* edit, explore, open, print, play?, properties? */
                                            HB_PARSTRDEF( 3, &hFile, NULL ),
                                            HB_PARSTR( 4, &hParameters, NULL ),
                                            HB_PARSTR( 5, &hDirectory, NULL ),
                                            hb_parnidef( 6, SW_SHOWNORMAL ) /* nShowCmd */ ) );

   hb_strfree( hOperation  );
   hb_strfree( hFile       );
   hb_strfree( hParameters );
   hb_strfree( hDirectory  );
#endif
}
Parâmetros:

Código: Selecionar todos

// FIRST PARAMETER
// "edit"    Launches an editor and opens the document for editing. If lpFile is not a document file, the function will fail. 
// "explore"    Explores a folder specified by lpFile. 
// "find"    Initiates a search beginning in the directory specified by lpDirectory. 
// "open"    Opens the item specified by the lpFile parameter. The item can be a file or folder. 
// "print"    Prints the file specified by lpFile. If lpFile is not a document file, the function fails. 
// 
// SECOND PARAMETER: 
// file or folder name
Linkar a HbWin

Fonte

enviar email via outlook

Enviado: 25 Fev 2014 11:00
por rbonotto
Entendido, e ja funcionando !!

Obrigado :D

enviar email via outlook

Enviado: 26 Fev 2014 14:59
por rbonotto
Pessoal, só um problema que esta acontecendo com o código.

Ele não esta colocando o arquivo em anexo, segue o codigo:

Código: Selecionar todos

cEmailDest := 'xxx@xxx.com.br'
cAssunto   := 'Relatorio'
cMensagem  := 'Rlatorio XXXX'

     WAPI_SHELLEXECUTE( 0, "open", "rundll32.exe", ;
     "url.dll,FileProtocolHandler " + ;
     "mailto:"+cEmailDest+"?cc=&bcc=" + ;
     "&attach=c:\teste.txt" + ;
     "&subject="+cAssunto + ;
     "&body="+cMensagem, , 1 )
Abre ok o outlook:
Imagem

Mas nada do arquivo anexado. Alguma idéia ?

Abraços,

enviar email via outlook

Enviado: 27 Fev 2014 07:43
por Toledo
Amigo, veja as duas primeiras mensagens deste tópico.

Abraços,

enviar email via outlook

Enviado: 27 Fev 2014 11:16
por rbonotto
Putz....que mancada a minha.... :-o

Desculpe nossa falha rsrsrsrsrsrs

Abraços,

enviar email via outlook

Enviado: 17 Jan 2017 15:46
por buenaonda
:-o Alguém poderia encontrar a solução para este? Eu encontrei esta informação. FiveWin vem com classe TSMTP peeeero, como não é de surpreender em FiveWin, a classe é incompleta e não suporta a autenticação ou suporta e-mail com anexos, então descartar a classe nativa de FiveWin.

Existem várias opções possíveis:

1) usando BLAT é um programa externo que é facilmente configurado através de um arquivo de texto, é gratuito e funciona muito bem ambos os 16 e 32 bits. Em seu site (blat.net) você vai encontrar exemplo detalhado, um simples WinExec BLAT <file> faz o que você precisa.

2) A xHarbour de 32 bits, você pode usar o objeto nativo que está incluído para o envio de e-mail, eu vou lhe dar um exemplo aqui, mas eu recomendo que você verifique o xHarbour documentação on-line (xharbour.com/xhdn / referenceguide /) para obter mais informações sobre a autenticação.