Como enviar XML+DANFE por e-mail?

185 views
Skip to first unread message

Joao Carlos zen

unread,
Apr 13, 2016, 3:35:44 PM4/13/16
to NFePHP
Gostaria de saber como faço para enviar o xml+o danfe por e-mail, o meu projeto não veio o exemplo 4.00testaEnviaEmail.php, tentei pegar ele de outro na internet com a mesma versão da NFePHP mas não funciona, da erro:

<?php

error_reporting(E_ALL);
ini_set('display_errors', 'On');
include_once '../../bootstrap.php';

//NOTA: o envio de email com o DANFE somente funciona para modelo 55
//      o modelo 65 nunca requer o envio do DANFCE por email

use NFePHP\NFe\ToolsNFe;


$xml = __DIR__.'/../xml/35150300822602000124550010009923461099234656-nfe.xml';

$nfe = new ToolsNFe('../../config/config.json');
$nfe->setModelo('55');

$aMails = ['e-mail a ser enviado']; //se for um array vazio a classe Mail irá pegar os emails do xml
$templateFile = ''; //se vaizio usará o template padrão da mensagem
$comPdf = true;
try {
    $nfe->enviaMail($xml, $aMails, $templateFile, $comPdf);
} catch (NFePHP\Common\Exception\RuntimeException $e) {
    echo $e->getMessage();


quando executo da o seguinte erro

Fatal error: Uncaught exception 'Zend\Mime\Exception\InvalidArgumentException' with message ''' must be string or resource' in /NFePHP/vendor/zendframework/zend-mime/src/Part.php:42 Stack trace: #0 NFePHP/libs/Common/Base/BaseMail.php(114): Zend\Mime\Part->__construct(false) #1 /NFePHP/libs/NFe/MailNFe.php(46): NFePHP\Common\Base\BaseMail->addAttachment('', '') #2 /NFePHP/libs/NFe/ToolsNFe.php(216): NFePHP\NFe\MailNFe->envia('/home/ascontsis...', Array, true) #3 /NFePHP/exemplos/NFe/EnviaEmail.php(22): NFePHP\NFe\ToolsNFe->enviaMail('/home/ascontsis...', Array, '', true) #4 {main} thrown in /NFePHP/vendor/zendframework/zend-mime/src/Part.php on line 42


Gostaria de um exemplo funcional ou uma solução para o erro.

Roberto Machado

unread,
Apr 14, 2016, 8:52:52 AM4/14/16
to nfe...@googlegroups.com
Atualize para a versão 4.0.42 do github e tente novamente.

Fique atento a alguns detalhes :

1 - use o composer SEMPRE
2 - a API deve ser uma dependência da sua aplicação  (invocada como um "require" no seu composer.json)
3 - Mantenha o com composer atualizado
4 - Acompanhe as versões do NFePHP 

ao colocar a API como uma dependência coloque assim no seu composer.json

"nfephp-org/nfephp":"4.0.*"

Dessa forma o composer irá sempre atualizar o pacote para a última versão "MINOR" da versão 4.0 ou seja
a última entre  >=4.0.0 e < 4.1

Roberto

Joao Carlos zen

unread,
Apr 19, 2016, 2:47:40 PM4/19/16
to NFePHP
Obrigado, deu certo, funcionou!
Reply all
Reply to author
Forward
0 new messages