- 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:
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 Terrausuario
(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 SSLYahoo 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:
- 2011-12-16 - v1.0- Versão preliminar.
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