13.4. Utilidadades
13.4.2. Envia e-mail2 [07/10/24]
13.4.1. Cria a chave de Acesso da NF-e 2G
« Anterior
13.4.3. Identar XML
Próximo »

13.4.2. Envia e-mail2 [07/10/24]

Envio de e-mail

Assinatura:

int EnvEmail2(string emailRemetente, string nomeRemetente, string emailDestinatario, string emailBcc, string assunto, string mensagem, string arquivos, string smtpCliente, string smtpPorta, string smtpSSL, string smtpUsuario, string smtpSenha, string HTML, string confirmacao, out string msgResultado, string timeout);

Possibilidade de informar o timeOut [28/09/13]

Alteração para informar o tempo de Timeout, o valor deve ser informado em ms, onde 1000ms corresponde a 1s, valor padrão anterior 180000ms (3 minutos)

Descrição:

Funcionalidade para enviar e-mail com possibilidade BCC e anexo

Parâmetros:

nome tipo fluxo descrição
emailRemetente string entrada informar o e-mail do remetente, a finalidade desta informação é apenas para constar como remetente na mensagem de e-mail.
nomeRemetente string entrada informar o nome do remente que irá constar no e-mail.
emailDestinatario string entrada informar os e-mail dos destinatários separados por (;) ponto-e-vírgula ou (,) vírgula.
emailBCC string entrada informar o e-mail de BCC - blind carbon copy, é a lista de e-mail para qual serão enviados uma cópia oculta da mensagem.
O uso deste recurso é interessante para gerar uma cópia de seguranças das NF-e emitidas sem qualquer custo. Basta criar uma conta em algum serviço de e-mail que permite a manutenção das mensagens por tempo indeterminado como é o caso do gmail. se os e-mail forem "baixados" em outro micro, teremos 2 cópias de segurança de todas as mensagens enviadas.
assunto string entrada informar o assunto do e-mail.
mensagem string entrada informar a mensagem do e-mail
arquivos string entrada informar a lista de arquivos que serão enviados como anexo, a lista deverá ter o caminho completo do arquivo separados por (;) ponto-e-vírgula ou (,) vírgula.
smtpCliente string entrada informar o smtpCliente que será utilizado para envio do e-mail, ex.: smtp.flexdocs.com.br, o smtpCliente do hotmail é smtp.live.com
smtpPorta string entrada informar a porta utilizada pelo smtp, ex.:587
smtpSSL string entrada informar o uso de SSL: "0" - nenhum, "1" - SSL e "2" - TLS (opção "2" - TLS - requer versão 4.16 ou sperior)
smtpUsuario string entrada informar o nome do usuário da conta de e-mail
smtpSenha string entrada informar a senha do conta de e-mail
HTML string entrada informar se a mensagem é HTML, valores válidos: "0" (não) ou "1" (sim)
confirmacao string entrada informar se deseja solicitar confirmação de leitura, valores válidos: "0" (não) ou "1" (sim)
msgResultado string saída retorna o literal do resultado chamada da funcionalidade
timeout string entrada informar o tempo de Timeout, o valor deve ser informado em ms, onde 1000ms corresponde a 1s, valor padrão anterior 180000ms (3 minutos) [28/09/13]

Configuração dos provedores mais utilizados

ATENÇÃO : Não funciona mais com e-mail da Microsoft (outlook, Hotmail, live, etc) e nem com o e-mail do gmail.

provedor smtpCliente smtpUsuario smtpPorta smtpSLL nomeRemetente emailRemetente
genérico smtp.dominio usuario@dominio 587 sim mantem em geral permite informar e-mail diferente da conta de smtp utilizada para o envio.
GMail smtp.gmail.com usuario@gmail.com

Necessário gerar a senha de App.
587 sim mantem não mantem, aparece o usuario@gmail.com
Microsoft 365
Microsoft Outlook
Hotmail
Live.com
smtp-mail.outlook.com e-mail da conta
Necessário gerar a senha de App
587 sim não mantem não mantem, aparece o usuario.
IG smtp.ig.com.br usuario@ig.com.br 587 sim mantem não mantem, aparece o usuario@ig.com.br
Terra smtp.siglaOpe.terra.com.br

a siglaOpe deve ser obtido no portal do Terra
usuario
(sem @terra.com.br)
587 sim ? não mantem, aparece o usuario@terra.com.br, se o e-mail remetente for diferente de terra.com.br, nem envia o e-mail.
Yahoo smtp.mail.yahoo.com usuario
(sem @yahoo.com)
Necessário gerar a senha de App
587 não mantem deve ser e-mail do usuario@yahoo.com
Yahoo Br smtp.mail.yahoo.com.br usuario
(sem @yahoo.com.br)
587 não mantem deve ser o e-mail do usuario@yahoo.com.br
UOL smtp.uol.com.br usuario@uol.com.br 587 sim mantem permite e-mail diferente da conta de smtp utilizada para o envio.
BOL smtps.bol.com.br usuario@bol.com.br 587 sim não permite não permite informar e-mail diferente da conta de smtp utilizada para o envio.

Retorno:

O resultado da chamada do EnvEmail é número que pode ter os valores:

código Mensagem origem regra
7100 Email enviado DLL -
7101 Erro: Tentativa de enviar e-mail falhou: [MENSAGEM DE FALHA DO WINDOWS] DLL -
7102 Erro: O e-mail do remetente deve ser informado. DLL -
7103 Erro: O e-mail do destinatário deve ser informado. DLL -
7104 Erro: O assunto do e-mail deve ser informado. DLL -
7105 Erro: A mensagem do e-mail deve ser informado. DLL -
7106 Erro: falha no processo de anexar os arquivos: [caminho do arquivo recebido pela DLL] DLL -
7107 Erro: O smtp cliente remetente deve ser informado. DLL -
7108 Erro: A porta smtp deve ser informado. DLL -
7109 Erro: O usuario do smtp deve ser informado. DLL -
7110 Erro: A senha do smtp deve ser informado. DLL -
7111 Erro: Arquivo(s) inexistente(s): [caminho do arquivo recebido pela DLL] DLL -
7112 Erro: O parâmetro smtpSSL deve ser informado com 0 ou 1 - valor informado: [VALOR INFORMADO] DLL -
7113 Erro: O parâmetro HTML deve ser informado com 0 ou 1 - valor informado: [VALOR INFORMADO] DLL -
7114 Erro: O parâmetro confirmacao deve ser informado com 0 ou 1 - valor informado: [VALOR INFORMADO] DLL -
7115 Erro: Erro não previsto: [MENSAGEM DE FALHA DO WINDOWS] DLL -

Histórico de atualização:

Exemplo de uso:

VB 6.0

Dim eMailRemetente As String
Dim nomeRemetente As String
Dim eMailDestinatario As String
Dim eMailBcc As String
Dim assunto As String
Dim mensagem As String
Dim arquivos As String
Dim smtpCliente As String
Dim smtpPorta As String
Dim smtpSSL As String
Dim smtpUsuario As String
Dim smtpSenha As String
Dim HTML As String
Dim confirmacao As String
Dim msgResultado As String
Dim timeOut As String
Dim cResultado As Long
 
 
 
eMailRemetente = "contato@flexdocs.com.br"
nomeRemetente = "suporte"
eMailDestinatario = "suporte.flexdocs@gmail.com; contato@flexdocs.com.br"
eMailBcc = "suporte.flexdocs@gmail.com"
assunto = "Teste de envio de e-mail"
mensagem = "corpo da mensagem"
arquivos = ""
smtpCliente = "smtp.flexdocs.com.br"
smtpPorta = "587"
smtpSSL = "0"
smtpUsuario = "nao.responder@flexdocs.com.br"
smtpSenha = "...."
HTML = "0"
confirmacao = "1"
msgResultado = ""
timeOut = "180000"  ' 180.000 ms = 180 segundos.
cResultado = 0
 
Dim objNFeUtil As Object
 
Set objNFeUtil = CreateObject("NFe_Util_2G.util")
 
cResultado = objNFeUtil.EnvEmail2(eMailRemetente, nomeRemetente, eMailDestinatario, eMailBcc, assunto, mensagem, arquivos, smtpCliente, smtpPorta, smtpSSL, smtpUsuario, smtpSenha, HTML, confirmacao, msgResultado, timeOut)
 
 
MsgBox "O retorno da DLL é: " + Str(cResultado) + msgResultado, vbInformation, "Resultado"
'
' libera classe
'
Set objNFeUtil = Nothing
13.4.2. Envia e-mail2 [07/10/24]
13.4. Utilidadades
« Anterior
13.4.1. Cria a chave de Acesso da NF-e 2G
Próximo »
13.4.3. Identar XML