Envio de E-mail com Delphi 2010, Indy 10, OpenSSL e GMail

Código-Fonte, Delphi, Open Source, Programação abril 7th, 2011

Depois de alguma horas de pesquisa, devido, dificuldades no envio de e-mail usando uma conta do GMAIL e outras; tivemos que modificar o código para usar autenticação segura. Interessante que em algumas máquinas funcionava sem o serviço de autenticação (qdo descobrir o motivo eu digo, rsrsrs). Compartilho com vocês essas informações.

Alguns erros reportados durante as falhas de envio de e-mail foram: “Must issue a STARTTLS command first” (indicando que seria necessário TLS ou, autenticação de segurança) e depois de implentado o código abaixo sem baixar a OpenSSL na máquina “Could not load SSL library”.

Modificamos então, o código para permitir o envio de e-mails usando autenticação ou não. Usando autenticação, é necessário instalar a OpenSSL  e, declarar alguns units no seu código. Na web encontrei vários artigos sobre isso, mas, a maioria com informações incompletas, agradeço mesmo assim essas informações, pois me auxiliaram a entender o que precisaria fazer e, juntando as peças (copiando e colando) montei o código abaixo.

As ferramentas e recursos de desenvolvimento utilizadas são: Delphi 2010, Indy 10 (disp. no Delphi), OpenSSL e testado com uma conta do GMAIL.

Veja o código:

Clique para continuar lendo “Envio de E-mail com Delphi 2010, Indy 10, OpenSSL e GMail”

Tags: , , ,

Distribuição da NF-e autorizada para o Destinatário (Parte II)

Código-Fonte janeiro 26th, 2009

Vimos no artigo anterior como gerar o arquivo da NF-e compartilhada à partir do XML da NF-e assinada e do XML do protocolo de autorização da NF-e. Nesse artigo vamos demonstrar o uso do componente Indy do Delphi para enviar o arquivo da NF-e compartilhada via E-mail; complentando-se assim, o processo de compartilhamento da NF-e com o destinatário:

Vamos partir do código anterior e implementar os recursos de envio do e-mail para o destinatário. Nesse exemplo, fazemos uso do componente Indy também disponível nas distribuições do Delphi.

Adicione os seguintes componentes no seu programa: idSMTP e idMessage; em seguida escreva o código abaixo:

Código-fonte para comandar o envio do e-mail da NF-e compartilhada para o destinatário:

begin
    // configura servidor smtp
    idSMTP1.Host := 'smtp.empresaxyz.com.br';
    idSMTP1.Username := 'controlenfe@empresaxyz.com.br';
    idSMTP1.Password := 'xxxxxxxx';
 
    // configurando mensagem
    // e-mail da sua loja
    idmessage1.ContentType := 'text/html';
    idmessage1.from.address := 'controlenfe@empresazyz.com.br';
    // e-mail destinatario
    idmessage1.recipients.emailaddresses := 'contato@empresaxyz.com.br';
    // Assunto (titulo E-mail)
    idmessage1.subject := 'Empresa XYZ (Envio automático NF-e) '+DateTimeToStr(now);
 
    // Corpo da Mensagem (use aqui um HTML ou texto que deseja enviar
    // juntamente com a mensagem.
    idmessage1.body.Add(
    'Prezado Cliente,'+
    'Obrigado por comprar na Empresa XYZ. Estamos encaminhando esse e-mail contendo'+
    ' em anexo, o arquivo eletrônico da sua Nota Fiscal de Compra; de acordo com '+
    ' o "Manual de Integração do Contribuinte" da Nota Fiscal Eletrônica. '+
    'Sds,'+
    'A administração!'+
    '
'+
    'PS. Caso tenha alguma dúvida favor entrar em contato conosco '+
    'pelos fones: xx xxx xxxxx ou E-mail: xxxxxx@xxxxx.xx.x'+
    ';
'+
    '<strong>Favor não responder!</strong>. Esse e-mail foi enviado automáticamente pelo'+
    ' nosso servidor após registro da autorização de uso da NF-e para a vossa '+
    'Empresa.'
    );
    // ou carregue uma mensagem pré-definida em um arquivo
    //idmessage1.Body.LoadFromFile('mensageNFe_destinatario.html');
 
    // anexa o XML da NFe compartillhada no e-mail
    TIdAttachment.create(idmessage1.MessageParts,
    TFileName('c:\nfe_arquivos\compartilhadas\procNFE.xml'));
 
    // conecta com o servidor SMTP
    idSMTP1.connect;
    try
    // Envia o e-mail
    idSMTP1.send(idmessage1);
    finally
        idSMTP1.Disconnect;
    end;
end;

Com isso concluímos o artigo sobre a Nota Fiscal Eletrônica Compartilhada, na primeira parte (parte I) geramos o arquivo da NF-e compartilhada à partir dos arquivos XML da NF-e assinada e do XML do recibo de autorização da NF-e. Nesse ultimo artigo vimos como enviar esse arquivo via e-mail para o destinatário.

Espero que essas informações sejam úteis para vcs e que eliminem com isso, algumas horas de pesquisa e trabalho.

Tags: , , , ,