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 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...