nfephp-org / nfephp

PROJETO DEPRECATED use sped-nfe
https://github.com/nfephp-org/sped-nfe
Other
692 stars 688 forks source link

Sugestão nome XML ao enviar e-mail #928

Closed Valkhan closed 7 years ago

Valkhan commented 7 years ago

Não sei se este é o local correto, ainda estou me habituando com o GitHub.

Ao usar a função padrão de envio de e-mail, o XML anexado vai com o nome composto do caminho completo do servidor, pessoalmente acho que isso é uma falha pois expõe a estrutura de pastas do servidor.

A minha sugestão (alterei no meu projeto) é utilizar somente o nome do XML sem o caminho completo e para tanto eu fiz a seguinte modificação no arquivo: nfephp/libs/NFe/MailNFE.php:

Antes:

public function envia($pathFile = '', $aMail = array(), $comPdf = false, $pathPdf = '')
    {
        if ($comPdf && $pathPdf != '') {
            $this->addAttachment($pathPdf, '');
        }
        $assunto = $this->zMontaMessagem($pathFile);
        //cria o anexo do xml
        $this->addAttachment($pathFile, '');
        //constroi a mensagem
        $this->buildMessage($this->msgHtml, $this->msgTxt);
        if (sizeof($aMail)) {
            // Se for informado um ou mais e-mails no $aMail, utiliza eles
            $this->aMail = $aMail;
        } elseif (!sizeof($this->aMail)) {
            // Caso não seja informado nenhum e-mail e não tenha sido recuperado qualquer e-mail do xml
            throw new Exception\RuntimeException('Nenhum e-mail informado ou recuperado do XML.');
        }
        $err = $this->sendMail($assunto, $this->aMail);
        if ($err === true) {
            return true;
        } else {
            $this->error = $err;
            return false;
        }
        return true;
    }

Depois:

public function envia($pathFile = '', $aMail = array(), $comPdf = false, $pathPdf = '')
    {
        if ($comPdf && $pathPdf != '') {
            $this->addAttachment($pathPdf, '');
        }
        $assunto = $this->zMontaMessagem($pathFile);
        $fileName = explode(DIRECTORY_SEPARATOR,$pathFile);
        if(count($fileName) == 1){
          $fileName = explode('/',$fileName[0]);
        }
        $fileName = $fileName[count($fileName) -1];
        //cria o anexo do xml
        $this->addAttachment($pathFile, $fileName);
        //constroi a mensagem
        $this->buildMessage($this->msgHtml, $this->msgTxt);
        if (sizeof($aMail)) {
            // Se for informado um ou mais e-mails no $aMail, utiliza eles
            $this->aMail = $aMail;
        } elseif (!sizeof($this->aMail)) {
            // Caso não seja informado nenhum e-mail e não tenha sido recuperado qualquer e-mail do xml
            throw new Exception\RuntimeException('Nenhum e-mail informado ou recuperado do XML.');
        }
        $err = $this->sendMail($assunto, $this->aMail);
        if ($err === true) {
            return true;
        } else {
            $this->error = $err;
            return false;
        }
        return true;
    }

Espero ter auxiliado alguém com esta sugestão.

robmachado commented 7 years ago

Neste repositório, como está descrito no README, não receberá mais nenhuma melhoria a não ser correções, nem mesmo será ajustada a nova versão do layout da SEFAZ (nfe v4.0). O novo sistema de envio de emails nativo está em sped-mail por favor veja se lhe atende e caso não nesse outro repositório podemos fazer os ajustes e pull request para as melhorias desejadas.