Função que abre o Outlook via função do AdvPL

Olá pessoal…

Hoje vou mostrar uma função desenvolvida para abrir uma nova mensagem do Outlook via AdvPL.

AdvPL

AdvPL

Essa função serve, caso você queira facilitar para algum usuário digitar algum e-mail para vendedor, ou para algum cliente, onde você já tem o campo de e-Mail.

Basta passar o e-Mail para essa função, que ele abre a tela com uma nova mensagem.

Abaixo o código fonte desenvolvido.

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zOutlook
Função que abre o outlook para escrever um novo e-mail
@type function
@author Atilio
@since 14/04/2017
@version 1.0
	@param cEmail, character, Endereço de e-Mail
	@example
	u_zOutlook("suporte@terminaldeinformacao.com")
	u_zOutlook(SA3->A3_EMAIL)
	@obs Caso queira ver a opção de adicionar assunto ou corpo do e-Mail, veja
	https://support.microsoft.com/pt-br/help/287573/how-to-use-command-line-switches-to-create-a-pre-addressed-e-mail-message-in-outlook
/*/

User Function zOutlook(cEmail)
	Local cExecute := "/c ipm.note /m "+Alltrim(cEmail)
	Default cEmail := ""
	
	//Se tiver email, abre o outlook
	If !Empty(Alltrim(cEmail))
		ShellExecute("OPEN", "outlook.exe", cExecute, "", 1)
	EndIf
Return

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

10 Responses

  1. Wendel Borges disse:

    Boa noite Atilio,
    Parabéns pela postagem, vai me ajudar muito. Gostaria de tirar uma dúvida… Irei executar esta função, mas preciso anexar um arquivo pdf, saberia informa se tem como fazer? O Objetivo é que a tela de envio do outlook seja aberta já com o e-mail do destinatário preenchido que irei passar como parâmetro e com um arquivo em anexo, arquivo esse que estará numa pasta no disco rígido local da máquina do usuário.

    Grato pela atenção!

    • Dan_Atilio disse:

      Boa noite Wendel, tudo bem?
      Sim é possível, você teria que passar o arquivo por parâmetro, por exemplo:

      outlook.exe /a "C:\TOTVS\relatorio_auto_alinhado.pdf"
      

      Um grande abraço.

  2. Arthur Silva disse:

    Boa tarde Atílio, tudo bem?

    Muito bom esse recurso e a postagem!

    Consegue me dizer como que eu posso trazer o outlook já com o corpo do email preenchido?

    att,
    Arthur Silva

  3. Joao Marcos Magnez Coelho disse:

    E se eu quisesse enviar 3 arquivos em anexo?

  4. Joao Marcos Magnez Coelho disse:

    Boa tarde, já chegou a fazer algo assim? teria algum exemplo pra me enviar? Ficaria muito agradecido!

  5. Pierry Guedes disse:

    Dan, boa tarde
    Eu to fazendo algo parecido, mas queria garantir que o ShellExecute só fosse chamado, se eu confirmasse que existe o Outlook instalado naquela máquina.
    Tentei utilizar o ApOleClient, passando os parâmetros “OUTLOOK” e “MSOUTLOOK” mas mesmo com o programa instalado retorno foi .F.
    Tens ideia de como daria pra fazer essa validação ?
    Desde já, obrigado.

Deixe uma resposta