Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Envio de E-mails

Srs, bom dia.

Gostaria de criar uma função que envia e-mails diários contendo uma tabela do meu qvw.

É possivel?

1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

sub TesteEmail

Set objMsg = CreateObject("CDO.Message")

Set msgConf = CreateObject("CDO.Configuration")

  'Server Configuration

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = " ..." 'smtp do email

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "..."  'seu email

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "****" 'senha

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1

msgConf.Fields.Update

'End With

  set obj = ActiveDocument.GetSheetObject("CH02")

  obj.ExportBitmapToFile "C:\...\tabela.jpg"  ' caminho onde vai salvar a tabela

  objMsg.To = "..." email pra quem voce quer mandar

  objMsg.From = "..." 'seu email

  objMsg.Subject = "teste qlikview"

  objMsg.HTMLBody = "testando e-mail "

  objMsg.AddAttachment "C:\...\tabela.jpg"

  objMsg.Sender = "Mr. Name"

  Set objMsg.Configuration = msgConf

  objMsg.Send

  msgbox("e-mail enviado")

  Set objMsg = nothing

  Set msgConf = nothing

end sub

View solution in original post

12 Replies
Anonymous
Not applicable
Author

Olá Leonardo,

Você pode utilizar uma macro, simples para fazer o que deseja.

OBS: Alguns servidores não permitem a execução de macros.

Para funcionar é necessário que você de um Ctrl+M na sua aplicação e deixe os dois campos do modulo de segurança liberados conforme a imagem abaixo:

Anexo exemplo.

Abraço

Not applicable
Author

Cristiano, para esse caso o Qlik abre o Outlook e necessita que eu clique em enviar. Eu preciso que seja feito de forma automatizada. Tipo, o sistema sozinho envia isso todos os dias às 8 da manha.

Anonymous
Not applicable
Author

sub TesteEmail

Set objMsg = CreateObject("CDO.Message")

Set msgConf = CreateObject("CDO.Configuration")

  'Server Configuration

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = " ..." 'smtp do email

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "..."  'seu email

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "****" 'senha

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1

msgConf.Fields.Update

'End With

  set obj = ActiveDocument.GetSheetObject("CH02")

  obj.ExportBitmapToFile "C:\...\tabela.jpg"  ' caminho onde vai salvar a tabela

  objMsg.To = "..." email pra quem voce quer mandar

  objMsg.From = "..." 'seu email

  objMsg.Subject = "teste qlikview"

  objMsg.HTMLBody = "testando e-mail "

  objMsg.AddAttachment "C:\...\tabela.jpg"

  objMsg.Sender = "Mr. Name"

  Set objMsg.Configuration = msgConf

  objMsg.Send

  msgbox("e-mail enviado")

  Set objMsg = nothing

  Set msgConf = nothing

end sub

offjunior
Creator
Creator

Boa noite amigo!

Eu tenho um template completo de envio de email que comercializo, funciona muito bem, acho que podes lhe servir. Então estou lhe enviando uma parte do código, que é a parte que faz o envio de fato, porem tem todo um contexto na SUB que vou lhe enviar, então terá que dar uma garimpada e retirar oque lhe interessa, mas está tudo ai. Essa rotina não pede permissão nenhuma e nem abre caixas de diálogo, simplesmente envia o email em background.

Agora esclarecimentos sobre o agendamento. Como a rotina a ser executada é uma Macro e Macros não são disparadas pelo SERVIÇOS de QLIKVIEW, então se você colocar a Macro para disparar após a carga do arquivo e a carga for feita pelo agendamento do Qlikview Server, a rotina não será disparada. Para um agendamento do Envio de Email totalmente automatizado, você terá que agendar uma tarefa do windows, para abrir o Qlik Developer Desktop e colocar a Macro para disparar no evento de abertura do documento em questão. Quando a rotina for executada por um botão, também tem restrições, elas são as seguintes: Para funcionar você deve utilizar o Internet Explorer e sempre utilizar com o Plugin I.E., assim as Macros trabalham perfeitamente sem restrições de Servidor/Cliente que você terá utilizando a tecnologia AJAX.

Espero ter ajudado, estou a disposição, abraço!

nicolett_yuri

Boa explicação!

Outra alternativa de execução é através do QlikView Publisher. Caso você tenha o Publisher, você conseguirá criar uma task para executar uma batch que executará o seu Qv Desktop com a macro.

rphpacheco
Creator III
Creator III

Uma terceira alternativa, mas demanda de investimento, é a utilização de programas próprios para este tipo de trabalho. Utilizo aqui na empresa onde trabalho o NPrinting. Ele realiza a criação e distribuição de relatórios em diversos formatos (.xls, .doc, .ppt, html), além de ter opções de envio por e-mail através de personalização de conteúdo, ou distribuição em pastas de destino.

Acredito que se a demanda por estes trabalhos for grande vale a pena pensar em uma solução como esta

Abs.

Not applicable
Author

Sucesso total turma! Muito obrigado pela ajuda de sempre

rafaelmarinho05
Contributor III
Contributor III

Bom dia Amigos,

Uma dúvida, preciso ter algum aplicativo de email instalado no servidor, como outlook ou Thunderbird ?

Esse objeto criado ele utiliza biblioteca do outlook ?

Set objMsg = CreateObject("CDO.Message")

Set msgConf = CreateObject("CDO.Configuration")

Pq quando testo la no editar Mudulo ele sempre marca essa linha de erro e cita.

"O componente ActiveX não consegue criar o objeto :CDO.Message

Anonymous
Not applicable
Author

Veja se os módulos de segurança estão liberados conforme o Cristiano citou a cima.