Hunter Mail

terça-feira, 25 de maio de 2010 20:00:00 Categories: Access Hunter
Rate this Content 1 Votes

Uma das aplicações que vamos utilizar bastante de agora em diante em diversos módulos do Hunter é o envio de e-mails. Seja para enviar o resultado de uma análise, um relatório periódico, uma verificação de parâmetros, ou qualquer outra finalidade, o envio automatizado de e-mails nos economiza bastante tempo em formatação, minimiza a ocorrência de erros, entre outras vantagens que veremos em breve.

 

 

Assim, vamos dar uma parada nos módulos georeferenciados, que utilizam principalmente Mapinfo e Google Earth, e voltar a trabalhar um pouco mais com o Access e VBA – embora o envio de e-mails possa ser realizado por qualquer aplicativo que tenha linguagem de programação. Vamos ver como fazer isso de forma simples e profissional.

 

Objetivo

Aprender a enviar e-mails automaticamente com informações dos módulos da Ferramenta Hunter.

O módulo Hunter Mail na verdade funciona como auxiliar para os resultados de outros módulos Hunter. De acordo com as características de cada módulo um e-mail é composto, e enviado para uma lista pré definida de contatos. Podemos enviar um ou mais arquivos anexados, e também gráficos no corpo do e-mail. Entretanto, até o momento ainda não vimos como criar relatórios formatados nem gráficos, por isso vamos utilizar os dados disponíveis até o momento – um arquivo com os dados de cadastro de nossa rede. Outras funcionalidades um pouco mais avançadas serão vistas oportunamente, quando for a hora. Hoje vamos aprender como é o processo padrão.

Inclusive, os e-mails semanais para os Membros e também para os Assinantes são enviados automaticamente com um processo semelhante ao que veremos hoje.

Nota: Na grande maioria dos tutoriais temos os arquivos relacionados, e que são enviados para os Assinantes.

  • Se você é um Assinante, por favor verifique em seu e-mail o arquivo recebido para este tutorial, e utilize o suporte para qualquer dúvida ou problema que encontrar.
    • Blog_011_Hunter_Mail.zip.
  • Se você é um Membro comum e tem acesso apenas ao tutorial escrito, aprenderá sempre conceitos muito importantes que com certeza vão lhe ajudar em seus próprios desenvolvimentos. Leia e comprove em cada novo tutorial.
    • Se você deseja contribuir de alguma forma, a maneira mais simples é tornar-se um Assinante.

A nossa audiência vai de estudantes a profissionais experientes. Por isso pedimos um pouco de compreensão e tolerância se alguns dos conceitos hoje apresentados forem básicos para você. Além disso, todos os tutoriais, códigos e programas estão num processo contínuo de edição. Isso significa que se encontrarmos algum erro, por exemplo, de gramática ou ortografia, tentaremos corrigi-lo o mais rápido possível. Também gostaríamos de receber o seu feedback, nos informando de erros encontrados ou passagens que ficaram confusas e merecem ser reescritas.

 

Estrutura de Arquivos

Como de costume, precisamos criar uma estrutura para conter os arquivos desse módulo.

Na raiz do diretório Hunter, crie o diretório Mail (1). Logo abaixo do diretório Mail, crie o diretório Scripts (2).

 

De forma simples é isso. Outros diretórios serão criados quando necessários.

 

O que é um E-mail?

Antes de qualquer coisa, você sabe qual é a definição de um e-mail, e como ele é enviado? Parece óbvio, e não é nosso objetivo detalhar isso, mas vale a pena entender alguns conceitos básicos.

Nota: temos certeza que você já usou um e-mail antes. De qualquer forma, vale a pena dar uma fixada rápida nos conceitos.

Um e-mail basicamente é a transmissão de uma mensagem digital através de um meio eletrônico, como a Internet. Mas definindo assim fica muito genérico, e parece até complexo, já que essa transmissão de mensagem pode ser qualquer coisa. Então não vamos complicar: um e-mail é tão simples como um a carta que você escreve e envia pelos correios tradicionais.

Fica bem fácil quando fazemos uma analogia com Cartas e Correio Tradicional. E para entender melhor essa analogia, vamos ver quais são as diferenças.

 

  • A mensagem: ao invés de usar uma caneta para escrever uma carta no papel você usa o teclado do seu computador e um programa editor de e-mail.
  • O envio: quando você termina de criar o seu e-mail, você diz para quem ele vai, ou seja, o seu destinatário. Só que para que a mensagem siga sua viagem, ao invés de colocar um selo você simplesmente envia o botão Enviar.
  • O transporte: assim como os correios transportam mensagens e pacotes, os servidores de e-mail transmitem mensagens de remetentes para destinatários.
  • O recebimento: ocorre quando você tem uma nova mensagem em sua caixa de entrada, e é notificado – você então vai e pega. Da mesma forma, os programas de e-mail verificam se você tem nova mensagem e te avisam para que possa baixar e ler.

Tudo bem, o e-mail pode ser explicado como fizemos acima, já que os objetivos e a operação básica é a mesma: troca de mensagens. Só que o e-mail pode fazer coisas que o correio tradicional não pode, e mesmo as tarefas que ambos realizam, o eletrônico pode fazer muito melhor. É por isso que o e-mail se tornou tão difundido, pela sua grande quantidade de vantagens.

Como principais vantagens podemos destacar a conveniência – enviar e receber e-mail em qualquer hora e lugar, dependo é claro da disponibilidade de acesso ao programa de e-mail com conectividade; a velocidade – que permite que uma mensagem chegue praticamente instantaneamente ao seu destino; possibilidade de anexos - que permite anexar arquivos de seu computador; a acessibilidade – ao serem armazenados convenientemente nos programas de e-mail, que atualmente são verdadeiros organizadores pessoais, integrando tarefas a fazer, etc. E é claro, os custos: praticamente zero se você tem acesso a Internet.

 

Mas também existem os problemas. Infelizmente, o ultimo benefício que mencionamos também é responsável por um dos maiores problemas atuais – spam, ou e-mails não solicitados que são enviados em grande número, geralmente com lixo eletrônico ou vírus de computador. Com centenas de e-mails lixo em sua caixa de entrada, ocasionalmente bons e-mails podem passar despercebidos. Hoje em dia temos programas sofisticados que tentam impedir esses tipos de problemas, mas a batalha ainda continua.

 

Mas como o E-mail é enviado?

Para que um e-mail possa ser enviado e recebido, é necessário em primeiro lugar um servidor de envio e recebimento de e-mails. E quando falamos em servidores de e-mail, geralmente vem junto um monte de siglas – SMTP, POP3, IMAP, etc... A maioria refere-se aos protocolos que são usados para o processamento ou seja, para o envio e recebimento das mensagens.

 

Vamos lá, mais algumas definições necessárias. Vamos tentar ser breve.

  • SMTP (Simple Mail Transfer Protocol): é o padrão internacional utilizado para transferência de e-mails entre computadores.
  • POP (Post Office Protocol): é um dos protocolos utilizados por leitores de e-mail (Eudora, Netscape, Outlook, etc) para buscar mensagens no servidor de e-mail. As mensagens são transferidas do servidor para o computador local quando o usuário se conecta ao servidor. Após buscar as mensagens a conexão pode ser desfeita, procedendo-se à leitura das mensagens sem precisar estar conectado ao servidor.
  • IMAP (Internet Message Access Protocol): é outro protocolo padrão utilizado por leitores de e-mail para ter acesso às mensagens que chegam ao servidor de e-mail. Diferentemente do POP, utilizando IMAP a conexão entre o computador local e o servidor de e-mail deve estar sempre ativa pois há uma constante interação entre eles. As mensagens são mantidas do servidor de e-mail, mas acessadas como se estivessem localmente.

Os servidores de e-mail podem usar aplicativos de e-mail do tipo cliente, aqueles que instalamos em nosso computador como o Outlook ou Eudora. Mas os e-mails também podem ser enviados e/ou recebidos via Internet, como é o caso do Yahoo! Mail, Gmail Hotmail, etc.

Bom, chega de teoria. Se você tiver interesse em aprender mais sobre e-mails, sugerimos que você faça uma pesquisa na Internet, ou se preferir peça a ajuda de nosso suporte.

Para enviar um e-mail automaticamente, necessariamente precisamos ter uma aplicação cliente. E como se tenho uma aplicação cliente? O mais óbvio, e já responde a pergunta, é se você utiliza um. Mas se você não utiliza, faça o seguinte teste: clique no link a seguir, e verifique o que acontece Clique Aqui. Se você tiver um aplicativo de e-mails padrão e não souber disso, o mesmo será iniciado, e aí você vai descobrir qual é, embora vai precisar configurá-lo. No final deste tutorial, damos um exemplo de como configurar o e-mail do Google (Gmail) no Outlook Express – um aplicativo de e-mail padrão do Microsoft que vem instalado junto com o Windows.

Nota: uma outra forma de verificar qual o seu programa de e-mails padrão é acessar o painel de Controle -> Opções da Internet -> Programas e ver qual o programa está listado como programa de e-mails.

Quando você clica num link de e-mail (mailto:’’) como o acima, está de certa forma executando um comando – ou instrução – do tipo: ´envie um novo e-mail, para tal endereço, e deixe eu editar até que clique no botão enviar’.

E no código é mais ou menos a mesma coisa: executamos linhas de comandos com essas instruções. Dependendo do Aplicativo (Access, Excel, etc...) ou da programação utilizada (VBA, C, etc...) a sintaxe varia. Mas de forma geral, seguem um padrão bem parecido com os do comando VBA que o Access utiliza e que veremos a seguir. Vamos ver exemplos?

 

Enviando um e-mail simples (Função SendMail_01)

A forma mais simples de se enviar um e-mail através do VBA no Access é utilizando o comando SendObject, e escrevendo os argumentos, ou os detalhes necessários para o envio como destinatário, assunto, etc. No VBA, já vimos que sempre que vamos executar um comando começamos com ‘Docmd.’ Seguido do comando desejado.

 

Para comandos que tem argumentos – como o caso do SendObject – após você digitar o primeiro ‘(‘, aparecem as opções requeridas e opcionais que você pode digitar destacadas em amarelo. Em negrito, aparece o primeiro argumento, bem como suas opções.

 

Nota: O comando se chama SendObject, mas você tem a opção de não enviar Objeto nenhum (constante acSendNoObject), assim pode enviar um e-mail apenas com texto se desejar.

Continuamos escrevendo o comando obedecendo ao sugerido no texto em amarelo, ou seja, digitando a vírgula, fica em negrito o próximo argumento, e assim vai para cada opção até o final.

A seguir, temos o commando completo, e uma breve descrição do que cada argumento representa.

DoCmd.SendObject(ObjectType, ObjectName, OutputFormat, To, Cc, Bcc, Subject, MessageText, EditMessage, TemplateFile)

  • ObjectType: o padrão desse argumento é acSendNoObject, que significa não enviar objeto nenhum; mas você pode enviar algum objeto do Access como uma tabela ou consulta, devendo assim ser escolhida a constante apropriada acSendDataAccessPage, acSendForm, acSendModule, acSendQuery, acSendReport ou acSendTable (este último por exemplo se você deseja enviar uma tabela anexada).
  • ObjectName: um texto opcional que é o nome válido do objeto – se você estiver enviando um. Se você deixar estas duas primeiras opções vazias o Access envia o e-mail sem nenhum objeto.
  • OutputFormat: opcional.
  • To: uma expressão de texto opcional com os destinatários da mensagem. Os destinatários devem ser separados por ‘;’ (ou pelo separador de lista, de acordo com o que você configura em Opções Regionais do Painel de Controle). Se houver algum erro com o separador de lista, vai dar um erro quando a aplicação de e-mail tentar enviar a mensagem, e aí você ajusta. Se esse argumento ficar vazio, o Access perguntará quais são os destinatários.
  • Cc e Bcc: expressões opcionais de texto, igual ao que vimos para To, com exceção que se estiverem vazios, o Access ignora e os campos correspondentes na mensagem ficam vazios.
  • Subject: Uma expressão de texto opcional contend o texto que você deseja colocar na linha de assunto da mensagem de e-mail. Se você deixar este argument em branco, o assunto vai em branco.
  • MessageText: uma expressão de texto opcional contendo o texto que você deseja incluir no corpo da mensagem. Se estiver vazio, o corpo também vai vazio.
  • EditMessage: argumento opcional. Use True (-1) para abrir a aplicação de e-mail padrão, permitindo assim que você edite a mensagem antes de enviar. Use (0) para enviar a mensagem sem editar. Se você deixar esse argumento em branco, o padrão (True) é assumido.
  • TemplateFile: para usar um arquivo HTML como template. Não vamos falar disso hoje, veremos em outro momento.
  • Bom, ninguém vai ficar decorando isso, e fica mais fácil fazer e entender através de exemplo. Abaixo temos um exemplo prático:

 

Ou seja, ao ser executada a função SendMail_01, será enviado um e-mail para telecomhall@gmail.com, com o Assunto ‘Função SendMail_01’ e com o texto ‘Este e-mail foi enviado automaticamente pela Função SendMail_01’ no corpo do e-mail. Viu como é simples? (Digite F5 ou F8 e confira que o e-mail é enviado).

 

Segurança do Outlook

Dependendo do aplicativo de e-mail que você utiliza, você poderá receber uma caixa de diálogo informando que algum e-mail está tentando ser enviado automaticamente, e se você deseja permitir que esse e-mail seja enviado.

 

Isso é uma configuração de segurança (como mostrado para o Outlook na imagem acima), e não tem como ser cancelada. Futuramente veremos que alguns módulos do Hunter precisam enviar e-mail automaticamente, e aí vamos ver como fazer para evitar essa trava de segurança.

De qualquer forma, qualquer que seja a confirmação solicitada, clique em Permitir. Abaixo, a solicitação do Outlook Express, com o envio.

 

Ajuda

Você pode e deve consultar a ajuda deste comando, e de todos os outros que utilizar. Faça isso sempre, é muito boa prática! Para isso, no VBE, selecione o comando e clique em F1. Na Ajuda você ainda encontra exemplos de utilização.

 

Enviando um e-mail simples (Função SendMail_02)

Tudo bem, já vimos como enviar um e-mail. Mas deu mais trabalho do que enviar utilizando o cliente de e-mail, que vantagem tem nisso?

É claro que não vamos ficar digitando os argumentos e opções do e-mail como fizemos acima. A grande vantagem da programação é que nos permite utilizar variáveis, ou seja, podemos obter todos os nossos dados de entrada de diversas fontes, e montar o comando de acordo com o que precisarmos.

Por exemplo, a função abaixo faz a mesma coisa que a anterior, mas agora utiliza variáveis.

 

Nesse exemplo específico, os valores das variáveis são atribuídos diretamente, mas futuramente veremos que podemos atribuir o valor dessas variáveis com dados de diversas fontes, como tabelas, arquivos do Excel, arquivos texto, Imagens, etc.

Além disso, poderemos utilizar HTML na variável que contém o Texto da Mensagem, e aí nosso limite é nossa criatividade!

Não se preocupe, sempre que um módulo utilizar envio de e-mail, você receberá o código completo que já faz tudo, inclusive monta o HTML ou qualquer outra funcionalidade mais avançada. Mas é muito importante que você vá acompanhando e entendendo cada novo tutorial. Não deixe acumular, caso contrário você não dará conta.

 

Enviando um e-mail via VBA utilizando o Outlook (Função SendMail_03)

Uma outra forma de se enviar e-mail através do VBA é utilizando o próprio aplicativo de e-mail (referenciando o mesmo). Assim, criamos um objeto na memória, contendo esse aplicativo. Em seguida, criamos um objeto desse aplicativo – no caso um objeto e-mail. E por fim, configuramos as propriedades desse objeto e-mail, com as informações desejadas para o envio.

 

Observe que os argumentos são praticamente os mesmos.

Nessa função especificamente, também enviamos o arquivo Network.xls, localizado no diretório C:\Hunter\Network\Data, como arquivo anexado. Para isso utilizamos o argumento Attachments.Add seguido do nome do arquivo que desejamos anexar.

 

Referência

Lembre-se que quando fazemos referência a um outro programa, precisamos incluir a biblioteca de referência no módulo, senão ocorre um erro como o mostrado abaixo.

 

Assim, com o VBE aberto, acesse o menu Ferramentas (1) -> Referências (2), e selecione a opção Microsfot Outlook X Object Library, onde X é a versão do Outlook que você usa.

 

Observação: o arquivo enviado referencia a biblioteca 12, referente ao Office 2007. Se você utiliza outra versão, lembre-se de fazer essa correção.

Poderíamos ficar aqui nos estendendo indefinidamente, criando inúmeras combinações de comandos para envio de e-mails, etc. Mas esse não é o nosso objetivo. É importante hoje apenas que você entenda como o processo funciona. E recomendamos que se você tiver algum interesse a mais no assunto, consulte a Internet ou a Ajuda do VBA.

 

Por fim, e mais uma vez: não se preocupe! Você sempre receberá os programas com todos os códigos completos e comentados. Se tiver alguma necessidade especial, também podemos te ajudar. Nosso suporte está disponível para você.

 

Configurando um e-mail do GMAIL no Outlook Express

Se você não usa – nem quer usar - o Outlook, uma opção é utilizar o Outlook Express, uma versão bem simples de software de e-mails, e já vem instalada com o Windows. O Outlook Express (msimn.exe) localiza-se no diretório C:\Program Files\Outlook Express.

Para terminar por hoje, vamos dar um exemplo completo de como configurar uma conta do Gmail no Outlook Express.

A primeira ação a ser tomada é ativar o Pop. Para isso, faça o login em sua conta do Gmail, e clique em Configurações (1) no canto superior direito e em seguida selecione a aba Encaminhamento e Pop/IMAP (2).

 

Escolha a configuração desejada - para todos os e-mails ou para os e-mails que chegarem a partir de agora. No campo de número 2 você tem a opção de manter uma cópia das mensagens servidor do Gmail ou pode escolher que elas sejam excluídas. O campo de número 3 tem instruções do próprio Google para você configurar o seu cliente de e-mail, por exemplo no Outlook ou Eudora.

Após ativar o POP, lembre-se de clicar no botão Salvar! Pronto, vamos agora configurar o seu cliente.

Primeiro, inicie o Outlook Express. Se for a primeira vez que o mesmo for iniciado, pule para o próximo parágrafo. Senão, clique em Ferramentas (1) -> Contas... (2), e em seguida, na nova janela, escolha Adicionar (3) -> E-mail (4).

 

Nessa nova janela você deve digitar o seu nome (1). Este é o nome que aparecerá para as pessoas que receberem os seus e-mails. Clique no botão Próximo (2). No nosso caso digitamos Portal TelecomHall, você deve digitar o seu nome.

 

Agora digite o seu e-mail que está sendo configurado (1) e clique no botão Próximo (2). No nosso caso, digitamos telecomhall@gmail.com, você deve digitar o seu e-mail.

 

Chegamos a parte mais importante, que é informar qual o nosso servidor POP e SMTP. Para o servidor, escolha POP3 (1). Para E-mail de Saída digite pop.gmail.com (2) e para E-mail de Entrada digite smtp.gmail.com (3). Clique no botão Próximo (4).

 

Na nova janela, digite o seu e-mail da conta do Google (1) e também a sua Senha (2), e clique no botão Próximo (3).

 

Sua conta foi configurada, mas ainda não terminamos. Para continuar, clique no botão Terminar (1), que significa apenas que inserimos as informações da conta com êxito, mas ainda não são suficientes para que seu Outlook Express receba ou envie mensagens.

 

Precisamos fazer mais algumas configurações, um pouco mais avançadas, mas não muito complicadas.

Acesse novamente o Menu Ferramentas -> Contas como fizemos anteriormente. Agora na janela aberta aparecerá a conta pop.gmail.com (1). Selecione esta conta e clique em Propriedades (2).

 

Na nova janela, dê um nome mais significativo a sua conta, como por exemplo GMAIL (1).

 

Na aba Servidores (1), marque a opção Meu Servidor Requer Autenticação (2).

 

Para terminar, selecione a aba Avançado para configurar as portas com as quais seu Outlook Express se comunicará com o Servidor. Digite 465 para SMTP (1) e 995 para POP3 (2) e marque as opções de SSL (3) e (4).

 

Pronto. Clique no botão OK - ou Aplicar e em seguida no botão OK. Se você não tiver nenhuma outra conta de e-mail configurada no Outlook Express, esta conta (única) já fica como default. Senão, você pode colocá-la como default - aconselhável e requerido se você for utilizá-la nos módulos automatizados do Hunter - através do menu do botão direito, clicando sobre a conta, e escolhendo Definir como Padrão.

 

Conclusão

Neste tutorial vimos como é fácil enviar emails com o Access.

Esperamos que você tenha gostado. Tire suas eventuais dúvidas postando seus comentários no Blog ou através do nosso Suporte via Chat ou E-mail.

Até nosso próximo encontro, e lembre-se: O seu sucesso é o nosso sucesso!