Visual Basic 6 -  Chamando o Outlook e usando o preenchimento automático


Que tal chamar o seu programa de e-mail e preencher os campos automaticamente ?

O VB 6 pode lhe dar uma mãozinha.

Uma chamada a  API e algumas linhas de código e pronto , eis o seu Outlook preenchido automaticamente.

O segredo e construir uma string usando 'mailto:' e passar os parâmetros : destinatário , cópia, mensagem , etc... 

A procedure irá chamar o seu programa de e-mail padrão , mas eu só testei no Outlook Express. Então vamos ao código.

  1. Inicie o VB e crie um projeto padrão.
  2. No formulário padrão insira um botão de comando , como a figura abaixo:
  1. Insira o seguinte código no formulário :
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory _
As String, ByVal nShowCmd As Long) As Long

Private Const SW_SHOWNORMAL = 1
Private Sub Command1_Click()
  Call SendMail("macoratti@riopreto.com.br", "Testando o preenchimento do Outlook", _
  "Esta é a mensagem do seu e-mail...", _
  "copia@carbono.com.br", "copiapara@carbono.com.br")
End Sub

Aqui estamos chamando a função SendMail com os parâmetros para preenchimento dos campos programa de e-mail.

Public Sub SendMail(Optional Address As String, _
Optional Subject As String, Optional Body As String, _
Optional CC As String, Optional BCC As String)

Dim strCommand As String

'constroi a string do email
If Len(Subject) Then strCommand = "&Subject=" & Subject
If Len(Body) Then strCommand = strCommand & "&Body=" & Body
If Len(CC) Then strCommand = strCommand & "&CC=" & CC
If Len(BCC) Then strCommand = strCommand & "&BCC=" & BCC

'substitui o primeiro &
'com interrogacao
If Len(strCommand) Then
   Mid(strCommand, 1, 1) = "?"
End If

'Inclui o comando mailto: e o endereço de e-mail
strCommand = "mailto:" & Address & strCommand

'executa o comando via API
Call ShellExecute(Me.hwnd, "open", strCommand,vbNullString, vbNullString, SW_SHOWNORMAL)

End Sub

O resultado:

Sem mais comentários e até a próxima dica...

Nota: Veja o artigo - VB .NET - Enviando Emails com OutLook 2007 - que realiza a mesma tarefa usando o VB .NET.

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti