Para realizar o envio de uma NFS-e por e-mail podemos utilizar três métodos disponíveis na interface do Manager Client, são eles:
- EnviarEmailNFSePorHandle
- EnviarEmailNFSePorNumero
- EnviarEmailNFSePorRPS
Todos utilizam a mesma interface de retorno. Seguem abaixo os detalhes dos métodos e de seus retornos.
Detalhes EnviarEmailNFSePorHandle
Função: Realiza o envio por e-mail de uma NFS-e ou RPS (XML e PDF) utilizando o identificador do registro no banco de dados do Manager SaaS/EDoc. Caso o RPS não tenha sido autorizado, será enviado o XML/PDF do RPS , caso o mesmo já esteja autorizado, será enviado o XML/PDF da NFSe.
Classe: TspdNFSeClientX
Método: EnviarEmailNFSePorHandle
Tipo Retorno: spdRetEmailX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aHandle | Texto | Sim | Número do identificador único da NFS-e no banco de dados do Manager SaaS/EDoc. |
aEmailDestinatario | Texto | Sim | E-mail do destinatário. |
aEmailCCo | Texto | Não | E-mail da cópia oculta. |
aEmailCC | Texto | Não | E-mail da cópia. |
aTexto | Texto | Não | Descrição do corpo da mensagem. |
aAssunto | Texto | Não | Assunto do E-mail. |
aOutrosAnexos | Texto | Não |
Caminho dos arquivos enviados em anexo, separados pelo caractere vírgula ",".
Exemplo: "C:\teste\anexo1.txt,C:\teste\anexo2.txt" |
aAnexaPDF | Boolean | Não |
Anexa o PDF da NFSe/RPS ao e-mail.
True ou False |
Detalhes EnviarEmailNFSePorNumero
Função: Realiza o envio por e-mail de uma NFS-e (XML e PDF) do através número da NFS-e (fornecido após a prefeitura autorizar o RPS). Ou seja, somente notas AUTORIZADAS podem enviadas por esse método.
Classe: TspdNFSeClientX
Método: EnviarEmailNFSePorNumero
Tipo Retorno: spdRetEmailX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aNumNFSe | Texto | Sim | Número da NFS-e autorizada retornado pelo WebService da prefeitura. |
aEmailDestinatario | Texto | Sim | E-mail do destinatário. |
aEmailCCo | Texto | Não | E-mail da cópia oculta. |
aEmailCC | Texto | Não | E-mail da cópia. |
aTexto | Texto | Não | Descrição do corpo da mensagem. |
aAssunto | Texto | Não | Assunto do E-mail. |
aOutrosAnexos | Texto | Não |
Caminho dos arquivos enviados em anexo, separados pelo caractere vírgula ",".
Exemplo: "C:\teste\anexo1.txt,C:\teste\anexo2.txt" |
aAnexaPDF | Boolean | Não |
Anexa o PDF da NFS-e ao e-mail.
True ou False |
Detalhes EnviarEmailNFSePorRPS
Função: Realiza o envio por e-mail de uma NFS-e/RPS (XML e PDF) do através dos dados do RPS, deve-se observar que a nota será enviada em modelo RPS caso ainda não autorizada. E se a nota já estiver autorizada será enviado o modelo NFS-e.
Classe: TspdNFSeClientX
Método: EnviarEmailNFSePorRPS
Tipo Retorno: spdRetEmailX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aNumRPS | Texto | Sim | Número do RPS enviado ao WebService da prefeitura. |
aSerieRPS | Texto | Sim | Série do RPS. |
aTipoRPS | Texto | Sim |
Tipo do RPS enviado. Exemplos: 1 - RPS (Padrão) 2 - Nota Fiscal Conjugada (Mista) 3 - Cupom |
aEmailDestinatario | Texto | Sim | E-mail do destinatário. |
aEmailCCo | Texto | Não | E-mail da cópia oculta. |
aEmailCC | Texto | Não | E-mail da cópia. |
aTexto | Texto | Não | Descrição do corpo da mensagem. |
aAssunto | Texto | Não | Assunto do E-mail. |
aOutrosAnexos | Texto | Não |
Caminho dos arquivos enviados em anexo, separados pelo caractere vírgula ",".
Exemplo: "C:\teste\anexo1.txt,C:\teste\anexo2.txt" |
aAnexaPDF | Boolean | Não |
Anexa o PDF da NFSe ao e-mail.
True ou False |
Atenção!
- Caso o RPS não tenha sido autorizado, a exportação será no modelo RPS , caso o mesmo já esteja autorizado, a exportação será no modelo NFSe.
- Esse caso descrito no item acima se aplica aos métodos EnviarEmailNFSePorHandle e EnviarEmailNFSePorRPS.
Delphi
procedure TfrmEnviarEmailNFSe.btnOKClick(Sender: TObject);
var
_Retorno: spdRetEmailX;
begin
//Esse método enviar o email para o destinatário através do Componente Manager Client
_Retorno := frmExemplo.NFSe.EnviarEmailNFSePorHandle(edtHandleNFSe.Text, edtEmail.Text, edtCCo.Text, edtCC.Text, edtMensagem.Text, edtAssunto.Text, '', chkAnexarPDF.Checked);
//Exibe o retorno no memo
frmExemplo.memoRetorno.Clear;
if _Retorno.Status = Sucesso then
frmExemplo.memoRetorno.Lines.Add('Mensagem: ' + _Retorno.Mensagem)
else
frmExemplo.memoRetorno.Lines.Add('Erro: ' + _Retorno.NomeExcecao + ', ' + _Retorno.Mensagem);
end;
No exemplo acima utilizamos o método EnviarEmailNFSePorHandle, mas o processo e o tipo de retorno é exatamente o mesmo para os demais métodos, bastando trocar a linha do exemplo onde o _Retorno recebe seu valor.
Para o método EnviarEmailNFSePorNumero:
//Esse método enviar o email para o destinatário através do Componente Manager Client
_Retorno := frmExemplo.NFSe.EnviarEmailNFSePorNumero(edtNumeroNFSe.Text, edtEmail.Text, edtCCo.Text, edtCC.Text, edtMensagem.Text, edtAssunto.Text, '', chkAnexarPDF.Checked);
Para o método EnviarEmailNFSePorRPS:
//Esse método enviar o email para o destinatário através do Componente Manager Client
_Retorno := frmExemplo.NFSe.EnviarEmailNFSePorRPS(edtNumeroRPS.Text, edtSerieRPS.text, edtTipoRPS.text, edtEmail.Text, edtCCo.Text, edtCC.Text, edtMensagem.Text, edtAssunto.Text, '', chkAnexarPDF.Checked);
C#
private void EnviarEmailNFSe_Click(object sender, EventArgs e)
{
string s = EmailNFSeForm("Email", "Exemplo Manager Client:", "");
if ((s != "fechar") && (s != ""))
{
string[] lines = Regex.Split(s, "\r\n");
bool cbAnexarPDF;
string edthandle = lines[0];
string edtCC = lines[1];
string edtAssunto = lines[2];
string edtEmail = lines[3];
string edtCCo = lines[4];
string edtMensagem = lines[5];
if (lines[6] == "True")
{
cbAnexarPDF = Convert.ToBoolean(1);
}
else
{
cbAnexarPDF = Convert.ToBoolean(0);
}
spdRetEmailX Retorno = null;
//Esse método faz o envio da NFSe por email pelo Componente Manager Client
Retorno = NFSe.EnviarEmailNFSePorHandle(edthandle, edtEmail, edtCCo, edtCC, edtMensagem, edtAssunto, "", cbAnexarPDF);
//O retorno do método é exibido no mem
if (Retorno.Status == spdManagerClientX.TStatus.Sucesso)
memoRetorno.Text = "Mensagem: " + Retorno.Mensagem + "\n";
else
memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem;
}
}
Para o método EnviarEmailNFSePorNumero:
//Esse método faz o envio da NFSe por email pelo Componente Manager Client
Retorno = NFSe.EnviarEmailNFSePorNumero(edtNumeroNFSe, edtEmail, edtCCo, edtCC, edtMensagem, edtAssunto, "", cbAnexarPDF);
Para o método EnviarEmailNFSePorRPS:
//Esse método faz o envio da NFSe por email pelo Componente Manager Client
Retorno = NFSe.EnviarEmailNFSePorRPS(edtNumRPS, edtSerieRPRS, edtTipoRPS, edtEmail, edtCCo, edtCC, edtMensagem, edtAssunto, "", cbAnexarPDF);
Visual Basic 6
Private Sub btnEnviarEmail_Click()
Dim Retorno As spdRetEmailX
'Esse método faz o envio da NFSe por email pelo Componente Manager Client
Set Retorno = frmExemplo.NFSe.EnviarEmailNFSePorHandle(edtHandle.Text, edtEmail.Text, edtCCo.Text, edtCC.Text, edtMensagem.Text, edtAssunto.Text, "", cbAnexarPDF.Value)
'O retorno do método é exibido no memo
If Retorno.Status = Sucesso Then
frmExemplo.memoRetorno.Text = "Mensagem: " + Retorno.Mensagem + vbCrLf
Else
frmExemplo.memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem
End If
Me.Hide
End Sub
Para o método EnviarEmailNFSePorNumero:
'Esse método faz o envio da NFSe por email pelo Componente Manager Client
Set Retorno = frmExemplo.NFSe.EnviarEmailNFSePorNumero(edtNumNFSe.Text, edtEmail.Text, edtCCo.Text, edtCC.Text, edtMensagem.Text, edtAssunto.Text, "", cbAnexarPDF.Value)
Para o método EnviarEmailNFSePorRPS:
'Esse método faz o envio da NFSe por email pelo Componente Manager Client
Set Retorno = frmExemplo.NFSe.EnviarEmailNFSePorRPS(edtNumRPS.Text, edtSerieRPS.Text, edtTipoRPS.Text, edtEmail.Text, edtCCo.Text, edtCC.Text, edtMensagem.Text, edtAssunto.Text, "", cbAnexarPDF.Value)
Retorno
O tipo spdRetEmailX possui os seguintes campos:
Campo | Tipo | Descrição |
Status | Constante | Retorna o status da operação: Sucesso ou Erro. |
NomeExcecao | Texto | Em caso de erro retorna a classe da Exception. |
Mensagem | Texto | Retorna a descrição da resposta do servidor. |
Comentários
0 comentário
Por favor, entre para comentar.