sped-mail
O envio de emails é parte integrante das necessidades de quem opera com os serviços SPED., (*1)
De acordo com a legislação é obrigatório o envio de emails contendo os xml das NFe e dos CTe aos seus repectivos destinatários., (*2)
Alguns destinatários, erroneamente, pedem também que seja enviado o PDF relativo ao Documento Auxiliar (DANFE, DACTE ou DACCE) em anexo a esse email., (*3)
Outros requerem que os emails seja enviados a várias caixas postais., (*4)
Esta parte da API se destina a prover essa facilidade, caso se deseje., (*5)
, (*6)
![Build Status][ico-travis]
![Quality Score][ico-code-quality]
![Latest Version on Packagist][ico-version]
![License][ico-license]
, (*7)
![Forks][ico-forks]
, (*8)
Como instalar :
Adicione este pacote com o composer, por linha de comando:, (*9)
composer require nfephp-org/sped-mail
Ou adicione ao seu composer.json:, (*10)
{
"require": {
"nfephp-org/sped-mail": "^0.1"
}
}
Como usar :
Essa classe pode ser usada de duas formas distintas., (*11)
1 - Usando o método estatico:
$resp = Mail::sendMail($config, $xml, $pdf, $addresses, $template);
Onde :
$config é um stdClass contendo as configuração de seu SMTP (OBRIGATÓRIO), (*12)
$config = new stdClass();
$config->mail->host = 'smtp.test.com.br';
$config->mail->user = 'usuario@test.com.br';
$config->mail->password = 'senha';
$config->mail->secure = 'tls';
$config->mail->port = 587;
$config->mail->from = 'usuario@test.com.br';
$config->mail->fantasy = 'Test Ltda';
$config->mail->replyTo = 'vendas@test.com.br';
$config->mail->replyName = 'Vendas';
$xml é o path ou o conteudo do xml que se deseja enviar (OBRIGATÓRIO), (*13)
$xml = '../nfe.xml';
ou ainda, (*14)
$xml = file_get_contents('../nfe.xml');
Idem para o $pdf (OPCIONAL), (*15)
$pdf = '../nfe.pdf';
ou ainda, (*16)
$pdf = file_get_contents('../nfe.pdf');
$address é um array contendo os endereços de email para quem você deseja enviar a mensagem.
Essas listas de email serão verificadas e os endereços que não forem validos serão descartados.
Se não for passada uma lista de endereços o sistema irá procurar no XML pelos endereços e esses serão usados, se existirem. (OPCIONAL), (*17)
$addresses = ['fulano@client.com.br'];
O template usado pode ser substituido pelo de sua escolha, usando o parametro $template (OPCIONAL).
Use como referencia os templates padrões para criar o seu veja isso na classe Base.php, (*18)
$template = '<p>Meu HTML {emitente} .... ';
Para maiores detalhes veja os exemplos indicados na pasta examples., (*19)
NOTA: Em caso de falha será retornado um EXCEPTION
Como enviar para vários destinatários
Pordemos enviar os emails para vários destinatários basicamente de duas maneiras diferentes:, (*20)
1 - Indicando todos os destinatários no próprio XML do documento
Neste caso podemos fazer uso da tag <obsCont> podem existir dezenas desses campos no xml, essa com certeza é a manira mais inteligente de indicar vários destinários, pois podem ser lidos diretamente do xml., (*21)
Veja que o tipo do campo xCampo="email" passa a ser obrigatório para que possamos identificar que este campo indica um email., (*22)
<obsCont xCampo="email">
<xTexto>fulano@yahoo.com.br</xTexto>
</obsCont>
2 - Passando os endereços adicionais em um array nesta classe
Essa forma já foi indicada acima na variável $addresses = [ ... ];, (*23)