11.4. Utilidadades
11.4.2. Envia e-mail
11.4.1. Cria a nova chave de Acesso do CT-e
« Anterior
11.4.3. Gerar PDF do DACTE
Próximo »

11.4.2. Envia e-mail

Envio de e-mail

Assinatura:

int EnvEmail(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);

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 utiliza pelo smtp, ex.:587
smtpSSL string entrada informar o uso de SSL: 0-não, 1-SSL ou 2-TLS.
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

Provedores que exigem autenticação em duas etapas

Alguns provedores de e-mail exigem a autenticação em duas etapas como por exemplo o gmail, outlook, office365, yahoo, etc. Para estes casos é necessário o uso de senha de aplicativos:

outlook/office365 - usando senha de aplicatiovs em aplicativos que não oferecem suporte à verificação em duas etapas

Gmail - fazer login com senhas de app

Yahoo - gerar e gerenciar senhas de aplicativos de terceiros

Configuração dos provedores mais utilizados

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 587 sim mantem não mantem, aparece o usuario@gmail.com
Hotmail smtp.live.com usuario@hotmail.com 587 sim não mantem não mantem, aparece o usuario@hotmail.com
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.
Obs.: Temos relato de usuário informando que a conta empresarial pode utilizar a porta 587 sem SSL
Yahoo smtp.yahoo.com usuario
(sem @yahoo.com)
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 smtps.mail.uol.com.br usuario@uol.com.br) 587 sim mantem permite e-mail diferente da conta de smtp utilizada para o envio.
BOL smtp.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 -

Histórico de atualização:

Exemplo de uso:

VB 6.0

'
' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL
'
Dim eMailRemetente As String    ' informar o e-mail do remetente, a finalidade desta informação é apenas para constar como remetente na mensagem de e-mail.
Dim nomeRemetente As String ' informar o nome do remente que irá constar no e-mail.
Dim eMailDestinatario As String ' informar os e-mail dos destinatários separados por (;) ponto-e-vírgula ou (,) vírgula.
Dim eMailBcc As String      ' 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.<BR>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.
Dim assunto As String       ' informar o assunto do e-mail.
Dim mensagem As String      ' informar a mensagem do e-mail.
Dim arquivos As String      ' 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. 
Dim smtpCliente As String   ' informar o smtpCliente que será utilizado para envio do e-mail, ex.: smtp.flexdocs.com.br, o smtpCliente do hotmail é smtp.live.com
Dim smtpPorta As String     ' informar a porta utiliza pelo smtp, ex.:587   
Dim smtpSSL As String       ' informar o uso de SSL: 0-não e 1-sim, o gmail e o hotmail utilizam o SSL
Dim smtpUsuario As String   ' informar o nome do usuário da conta de e-mail
Dim smtpSenha As String     ' informar a senha do conta de e-mail
Dim HTML As String      ' informar se a mensagem é HTML, valores válidos: "0" (não) ou "1" (sim)
Dim confirmacao As String   ' informar se deseja solicitar confirmação de leitura, valores válidos: "0" (não) ou "1" (sim)
Dim msgResultado As String  ' retorna o literal do resultado chamada da funcionalidade
Dim cResultado As Long      ' retorna o resultado do envio 

 
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 = ""
cResultado = 0
 
Dim objCTeUtil As Object
 
Set objCTeUtil = CreateObject("CTe_Util.util")
 
 
cResultado = objCTeUtil.EnvEmail(eMailRemetente, nomeRemetente, eMailDestinatario, eMailBcc, assunto, mensagem, arquivos, smtpCliente, smtpPorta, smtpSSL, smtpUsuario, smtpSenha, HTML, confirmacao, msgResultado)
 
 
MsgBox "O retorno da DLL é: " + Str(cResultado) + msgResultado, vbInformation, "Resultado"
'
' libera classe
'
Set objCTeUtil = Nothing
11.4.2. Envia e-mail
11.4. Utilidadades
« Anterior
11.4.1. Cria a nova chave de Acesso do CT-e
Próximo »
11.4.3. Gerar PDF do DACTE