Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Srs, bom dia.
Gostaria de criar uma função que envia e-mails diários contendo uma tabela do meu qvw.
É possivel?
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
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
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.
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
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!
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.
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.
Sucesso total turma! Muito obrigado pela ajuda de sempre
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
Veja se os módulos de segurança estão liberados conforme o Cristiano citou a cima.