A função NFSeEnviaEmail serve para fazer o envio de um e-mail.
Tipo de Retorno
Integer
Pacote
A função NFSeEnviaEmail está definida dentro do pacote NFSeEnviaEmail.pkg.
Sintaxe
Move (NFSeEnviaEmail(&{vParams})) to {iRet}
Onde:
- &{vParams} é uma estrutura do tipo tNFSeEnviaEmail que deve ser passada por referência e tem as seguintes propriedades:
- {sRemetente} é o endereço de e-mail do remetente;
- {sNomeRemetente} é o nome do remetente;
- {sDestinatarios} é o endereço dos destinatário, sendo possível informar mais de 1 endereço separando os endereços por ponto-e-vírgula (;) ou vírgula (,);
- {sBCC} informe os endereços para cópia oculta da mensagem (BCC - Blind Carbon Copy), sendo possível informar mais de 1 endereço separando os endereços por ponto-e-vírgula (;) ou vírgula (,);
- {sAssunto} é o assunto do e-mail;
- {sMensagem} é a mensagem do corpo do e-mail, sendo a quebra de linha identificada pelos caracteres 13 e 10 quando a mensagem é apenas texto, ou pode também ser em formato HTML desde que indicado no parâmetro {bHTML};
- {sAnexos} é a lista de arquivos que serão enviados anexos, sendo que os arquivos devem ser informados com o caminho completo do arquivo e, para informar mais de 1 arquivo, basta separá-los por ponto-e-vírgula (;) ou vírgula (,);
- {sSMTP} é o endereço de SMTP que será usado para enviar o e-mail, como por exemplos smtp.live.com (hotmail) ou smtp.gmail.com (gmail);
- {iPortaSMTP} é a porta utilizada para comunicação com o servidor SMTP, sendo que a maioria dos servidores usam a porta 25, mas há exceções como o gmail, que usa a porta 587;
- {bSSL} indica se o servidor usa SSL (True) ou não (False). O gmail, por exemplo, usa SSL e se não for informado True neste parâmetro a autenticação falhará;
- {sSMTPUsuario} é o nome do usuário para autenticar no servidor SMTP, sendo que em alguns servidores o usuário é a parte que vem antes do "@" no endereço de e-mail e em outros é o próprio endereço de e-mail;
- {sSMTPSenha} é a senha para autenticar o usuário no servidor SMTP;
- {bHTML} indica se a mensagem está em formato HTML (True), sendo que por padrão o valor é False indicando que o corpo do e-mail é texto simples;
- {bConfirmacao} indica se será solicitada a confirmação de leitura (True), sendo que por padrão o valor é False indicando que não será solicitada confirmação de leitura para o destinatário;
- {sMsgResultado} é uma variável do tipo String e que após a execução da função receberá a mensagem literal do resultado da chamada da função;
- {bExibeErro} é usado para indicar se a função deve exibir ou não os erros que ocorrerem na execução;
- {iRet} é o código do retorno da chamada da função, sendo que 0 (zero) indica que o e-mail foi enviado e qualquer valor diferente de 0 (zero) indica que houve algum erro no envio. Possíveis retornos de erro:
- 7101: Tentativa de enviar e-mail falhou: [MENSAGEM DE FALHA DO WINDOWS];
- 7102: O e-mail do remetente deve ser informado;
- 7103: O e-mail do destinatário deve ser informado;
- 7104: O assunto do e-mail deve ser informado;
- 7105: A mensagem do e-mail deve ser informado;
- 7106: falha no processo de anexar os arquivos: [caminho do arquivo recebido pela DLL];
- 7107: O smtp cliente remetente deve ser informado;
- 7108: A porta smtp deve ser informado;
- 7109: O usuario do smtp deve ser informado;
- 7110: A senha do smtp deve ser informado;
- 7111: Arquivo(s) inexistente(s): [caminho do arquivo recebido pela DLL].
Exemplo
Um exemplo de utilização desta função pode ser visto na view EnviaEmail.vw da Workspace de exemplo (a partir da versão 2016/01).
Observações
- Em 10/09/2015, tivemos relatos de dificuldades para usar a função com o gmail. Fizemos testes e tivemos sucesso no envio após habilitar a opção "Permitir aplicativos menos seguros" na conta do google e usando a porta 587 com SSL=1. Para mais detalhes sobre a opção, acesse este link: https://support.google.com/accounts/answer/6010255?hl=pt-BR.
- No caso de dúvidas referente às informações do servidor como endereço SMTP, porta de comunicação, utilização do protocolo SSL e usuário de autenticação consulte o suporte técnico do seu provedor de e-mail;
- A função considerará o corpo do e-mail como texto simples caso o parâmetro {bHTML} não seja informado;
- Caso o parâmetro {bConfirmacao} não seja informado será considerado False, indicando que não será solicitada ao destinatário a confirmação do recebimento do e-mail;
- Esta função está disponível a partir da versão 2014/01.
Configuração dos provedores mais utilizados
Provedor |
SMTP |
Porta |
SSL |
Usuário |
Genérico |
smtp.dominio |
25 |
Não |
usuario@dominio |
GMail |
smtp.gmail.com |
587 |
Sim |
usuario@gmail.com |
Hotmail |
smtp.live.com |
587 |
Sim |
usuario@hotmail.com |
Yahoo |
smtp.yahoo.com |
587 |
Não |
usuario |
Yahoo Br |
smtp.mail.yahoo.com.br |
587 |
Não |
usuario |
Não encontrou o que precisava, entre em contato conosco.