Projeto de uma Dll criada em C# para fazer envios de email urilizando um servidor SMTP.
-
Pegue a MailSMTP.dll e copie para a pasta:
- C:\Windows\System32 (caso seu Windows for x86);
- C:\Windows\SysWOW64 (caso seu Windows for x64);
-
Abra o Windows PowerShell como Administrador e utilize este comando: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
-
Execute no Windows PowerShell o seguinte comando:
- Caso x86: .\RegAsm.exe C:\Windows\System32\MailSMTP.dll /codebase /tlb:C:\Windows\System32\MailSMTP.tlb
- Caso x64: .\RegAsm.exe C:\Windows\SysWOW64\MailSMTP.dll /codebase /tlb:C:\Windows\SysWOW64\MailSMTP.tlb
ATENÇÃO: caso não tenha sido criado o arquivo .tlb voce deve executar novamente o passo 3
-
Após a criação do arquivo .tlb voce deve referencia-lo no seu projeto VBA para que seja possivel utilizar suas funcionalidades
- Abra seu projeto VBA e vá ate a aba 'Projeto':
- Dentro de 'Projeto' vá até Referências:
- No formulario de referencias busque pelo arquivo .tlb gerado anteriormente:
- Selecione o arquivo .tlb e esta tudo pronto para começar a utilizar a dll
Para realizar um envio de email, você poderá utilizar a função sendEmail da dll. Veja abaixo sobre os parâmetros necessários, e um exemplo de chamada do método.
ATENÇÃO: as '{}' representadas na tabela de parametros significam de maneira visual um ArrayList.
Parametros | Tipo de Dado | Descrição |
---|---|---|
mailServer | String | Endereço do servidor de email smtp; Ex.: "mail.mazzoni.com.br". |
mailPort | Int | Porta do servidor de email. |
fromName | String | Nome de do remetente. |
fromEmailAddress | String | Endereço de email do remetente. |
recipients | ArrayList | Email(s) e nome(s) do(s) destinatario(s). Deve ser preenchido separados por ';'. Ex.:{"[email protected];Nome Exemplo", "[email protected];Nome Exemplo1"} |
emailSubject | String | Assunto do email que será enviado. |
emailBody | String | Conteudo escrito do email. |
reqAuthentication | bool | (Optional)Se é necessario autenticação para utilizar o servidor de email. |
userNameSSL | String | (Optional) Nome do usuario a se autenticar. |
passwordSSL | String | (Optional) Senha do usuario a se autenticar. |
attachments | ArrayList | (Optional) Caminhos dos anexos que deseja enviar. Ex.:{"C:\exemplo.pdf", "C:\exemplo.xml"}. |
Após ter todos os parâmetros listados acima, você deverá fazer a chamada da função. Veja o código em VB6 de exemplo abaixo:
'Cria uma refencia a dll
Dim mailSmtp As New MailSMTP.email
Dim feitoEnvio As Boolean
'Cria o ArrayList de Destinatarios
Dim dests As Object
Set dests = CreateObject("System.Collections.ArrayList")
dests.Add "[email protected];Nome Exemplo"
dests.Add "[email protected];Nome Exemplo1"
'Cria o ArrayList de anexos
Dim anexos As Object
Set anexos = CreateObject("System.Collections.ArrayList")
anexos.Add "C:\exemplo.xml"
anexos.Add "C:\exemplo.pdf"
'Faz o envio de email
feitoEnvio = mailSmtp.sendEmail("mail.mazzoni.com.br", 26, "Empresa teste", "[email protected]", dests, "Email Teste", "Segue os arquivos em anexo:", True, "[email protected]", "exemplo123", anexos)
MsgBox (feitoEnvio)
A função sendEmail fará o envio do email para todos os destinatarios postos no ArrayList. Como pedido, caso seja enviado sem problemas o email retornará verdadeiro, caso não false.