foto
Gabriel Z Blog

Gabriel Z Blog

Tecnologia web, Magento & geek stuff

Magento: envio de e-mails transacionais não funciona

29 de julho de 2009

Este é um dos principais problemas que os usuários brasileiros de Magento encontram: o sistema não envia e-mails transacionais (nem de cadastro, formulário de contato ou qualquer outro). Bem, vou tentar resumir abaixo o que você deve fazer para enviar corretamente os e-mails com as vendas, faturas, pedidos, etc. Você pode utilizar a lista a seguir como uma “checklist”, na ordem:

  1. Verifique sua tradução instalada: se a tradução utilizada não contiver o diretório /app/locale/pt_BR/template/email/sales, você não conseguirá carregar os e-mails “base” para criar seus próprios e-mails de venda pelo admin. Baixe um pacote atualizado, completo. Importante: se você mudar a língua do sistema para en_US e os e-mails estiverem saindo, os passos 1 a 4 deverão solucionar o seu problema.
  2. Verifique as permissões do diretório de tradução: por padrão, todos os diretórios sob /app/locale/pt_BR devem permissão 775 (chmod em sistemas Unix-like). Deixe também todos os arquivos com permissão 644. Se mesmo assim você não estiver conseguindo carregar os templates ao criar um novo e-mail transacional no admin, experimente outras permissões (p. ex. 777 para todo mundo), pois este ponto pode variar conforme as restrições de seu servidor de hosting.
  3. Verifique a codificação dos templates: todos os arquivos .html dentro do diretório /sales devem estar em UTF-8, pois os caracteres acentuados podem impossibilitar o carregamento dos templates no admin, se os arquivos estiverem em ISO ou outro formato (a mensagem de “carregando” fica aparecendo eternamente e não carrega nada). Se você baixou um bom pacote de tradução, seus arquivos já devem estar codificados em UTF-8.
  4. Verifique as configurações de e-mails de vendas: vá até Sistema > Configuração > VENDAS > E-mails de vendas e revise todas as configurações. Assegure-se de habilitar todos os e-mails, selecione corretamente os remetentes (preferencialmente e-mails reais) e os modelos (deve haver um modelo em português para cada e-mail transacional).
  5. Verifique as permissões de envio de e-mail do seu provedor: talvez você precise solicitar ao provedor que habilite o e-mail nobody para envio de e-mails a partir da sua conta de hospedagem.
  6. Altere a função do Magento que envia as mensagens: o Magento utiliza o Sendmail para enviar e-mails. Este serviço pode estar configurado de diversas formas, dependendo das restrições de segurança do seu servidor de hosting e, portanto, se você revisou todos os itens acima e seu sistema ainda não envia mensagens, a possibilidade de o Sendmail ser o vilão dessa história é grande. Para “driblar” esta dificuldade, altere o método da biblioteca Zend que envia os e-mails, para usar a função “mail” padrão do PHP, em /lib/Zend/Mail/Transport/Sendmail.php:
/**
     * Send mail using PHP native mail()
     *
     * @access public
     * @return void
     * @throws Zend_Mail_Transport_Exception on mail() failure
     */
    public function _sendMail()
    {
    /**
        if ($this->parameters === null) {
            $result = mail(
                $this->recipients,
                $this->_mail->getSubject(),
                $this->body,
                $this->header);
        } else {
            $result = mail(
                $this->recipients,
                $this->_mail->getSubject(),
                $this->body,
                $this->header,
                $this->parameters);
        }
*/
            $result = mail(
                $this->recipients,
                $this->_mail->getSubject(),
                $this->body,
                $this->header,
                '-f'.$this->_mail->getFrom());
        if (!$result) {
            /**
             * @see Zend_Mail_Transport_Exception
             */
            #require_once 'Zend/Mail/Transport/Exception.php';
            throw new Zend_Mail_Transport_Exception('Unable to send mail');
        }
    }

Tags: , , ,

39 comentários para “Magento: envio de e-mails transacionais não funciona”

  1. Marcelo Fidalgo disse:

    Olá,
    Verifiquei item a item, porém não vai nem com reza..rsrs
    e também, qndo clicado em “Esqueceu sua Senha” em minha conta, ele retorna o seguinte erro: “Invalid transactional email code: 3″. Está complicado!!!

  2. Marcelo Fidalgo disse:

    OBS: (ver. 1.3.2.3)

  3. Emilia disse:

    Olá,
    No meu caso, o formulário de contato funciona, e quem se cadastra para receber Newsletter recebe e-mail de confirmação do cadastro… Mas nenhum dos outros e-mails transacionais (confirmação de compra, envio de lista de desejos, comentários da compra, etc.) funciona. Estão todos habilitados, com endereços válidos. Se você puder lançar alguma luz, agradeço … (Ver 1.3.2.3)

  4. Jorge disse:

    Olá,

    Sou novo por aqui e instalei a pouco uma loja Magento, mas no meu provedor a instalação é automática e veio um banner do pagseguro na página inicial, logo abaixo do menu, mas não estou conseguindo removê-lo. Alguém sabe me dizer qual arquivo devo editar, já revirei todos e não encontrei o código do pagseguro para remover. Quero trocar o banner pelo do Pagamento digital.
    Agradeço a atenção.

  5. Jorge disse:

    Aproveitando a oportunidade, também tenho problemas nos emails transacionais. A loja envia conforme configurado, mas recebo o email todo errado, com uns códigos doidos. Alguém sabe como corrigir? Já tentei de tudo sem sucesso, mudei de html para texto, editei tags e nada. Continua torto.

    Fica assim:

    =0D=0A
    Caro(a) ,
    =0D=0A Bem vindo(a) =C3=A0 loja Demo. Para logar quando visitar= nosso site simplesmente Entrar ou Minha conta no topo de todas as p=C3=A1ginas, e ent=C3=A3o informe seu e-mail e senha.

    =0D=0A=0D=0A
    Quando voc=C3=AA logar em= sua conta, Voc=C3=AA ser=C3=A1 capaz de:

    =0D=0A=0D=0A
    =0D=0A
    Proceder atrav=C3=A9s do checkout r=C3=A1pido quando fizer um= pedido=0D=0A
    Verificar o status dos pedidos =0D=0A
    Visualizar pedidos anteriores=0D=0A =
    Fazer altera=C3=A7=C3=B5es nas informa=C3=A7=C3=B5es de sua conta=0D=0A
    Mudar sua senha=0D=0A
    Endere=C3= =A7os alternativos (entregas para m=C3=BAltiplos familiares e amigos!)=0D=0A

  6. alvarenga disse:

    Os meus email’s chegam só que vem em branco com nada dentro, o que pode ser isso.. Help..

  7. denis disse:

    Tb estou com o problema dos emails em branco… Alguém tem uma luz? Recebo os emails, porem eles chegam em branco.

    QUando usando o locale en_US, funciona perfeitamente!

  8. Gabriel Zamprogna disse:

    Alvarenga e Denis
    Provavelmente, seus arquivos estão com permissões incorretas. Verifiquem novamente conforme as indicações do post.
    Abraço!

  9. Ana disse:

    Olá Gabriel, ainda não consgui configurar.

    Os emails de cadastro e de newsletter estão funcionando corretamente, mas os emails de venda não está indo de jeito nenhum, o que mais poderia ser :-/

    Não aguento mais mandar emails manualmente a cada compra! Se puder me ajudar, agradeço imensamente.

  10. Daniel Brasiliense disse:

    Alvarenga e Denis,

    Caso ainda tenham problema após as dicas do Gabriel, verifiquem o conteúdo dos arquivos nas pastas descritas anteriormente.

    Muitas vezes o problema está no HTML.

    Ex: …img src=”{{skin url=”images/logo_email.gif” _area=’frontend’}}”…

    A propriedade da tag img possui como delimitador aspas e o conteúdo também. Isto pode ser um dos motivos para o problema.

    Solução: …img src=”{{skin url=’images/logo_email.gif’ _area=’frontend’}}”…

  11. Felipe Pontes disse:

    Olá. Eu criei um template de email e estou tentando utilizá-lo. Eu quero enviar um email apenas quando um determinado status for atingido. Mas na aba de configurações (e-mails de vendas) eu só tenho opções gerais, como Pedido, Fatura, Postagem etc. Alguém poderia me dar uma luz?

  12. Arthur disse:

    estou com problemas tambem..
    os e-mails chegam em branco.. alguem pode me ajudar ?

  13. Gabriel Zamprogna disse:

    Felipe,
    Este tipo de funcionalidade só seria possível criando um novo módulo, já que não existem e-mails para outros status (diferentes dos padrões “pendente”, “processando”, etc).
    Abraço!

  14. Enrique disse:

    Gabriel,
    no meu caso, os e-mails correspondentes aos Pedidos (ou seja, às compras) não são enviados, mas se faço qualquer comentário no pedido, o e-mail de “update” vai sem problemas. Os de Cancelamento também estão indo sem problema.

    Já verifiquei as permissões dos arquivos e pastas que você comentou.

    Algumas idéia?

    Abraço,
    Enrique

  15. Gabriel Zamprogna disse:

    Enrique

    Preencha seu e-mail em Sistema > Configuração > VENDAS > E-mails de vendas > Pedido > Enviar cópia do e-mail de compra para.
    Desta forma, você sempre receberá uma cópia do e-mail enviado ao cliente, no momento do pedido.

    Abraço!

  16. Roberto Acioli disse:

    Caros,

    Como eu não tinha um pacote completo para pt_BR, baixei o conteúdo de /app/locale/en_US/template/email/, traduzi manualmente os textos (usando o notepad++ mesmo) e copiei para /app/locale/pt_BR/template/email/. O problema é que não consigo visualizá-los no Admin do Magento (Sistema -> E-Mails Transacionais). Já mudei as permissões para 777, atualizei o cache e nada. Como faço para ver esses templates no Admin do Magento?

    Obrigado!

  17. Gabriel Zamprogna disse:

    Roberto

    Se você usou o notepad++, veja se a codificação ficom em UTF-8 (Sem BOM).
    Se a codificação ficar diferente, o Magento não vai conseguir abrir e ao tentar carregar um template, você verá uma mensagem de “carregando…” eternamente.

    Abraço e boa sorte!

  18. Roberto Acioli disse:

    Gabriel,

    Obrigado pela resposta rápida!

    Infelizmente não deu certo. Mudei o charset dos arquivos para UTF-8 (without BOM) e nada. Acho que vou apelar e adicionar os templates “na mão” em Sistema -> E-mails Transacionais. Depois eu configuro os eventos para usar os novos templates, em vez de usar o “modelo padrão de localidade”. Vai dar um trabalho danado, mas não tenho outra idéia.

    Abraço!

  19. Tiago disse:

    GALERA EU PASSEI PELO MESMO PROBLEMA, MAS É FÁCIL DE RESOLVER E A NOVA CORREÇÃO ORTOGRÁFICA AJUDA D+++++ HEHEHE.
    PARA RESOLVER O PROBLEMA RETIREM “TODOS OS TIPOS DE FORMATAÇÃO BRASILEIRA” EX: AÇÃO => ACAO. DEPOIS QUE TIRAREM TODOS OS ACENTOS SUBA OS ARQUIVOS COMO BINÁRIO. SUCESSO PARA TODOS.
    AT
    HOSTING & CIA.

  20. Gabriel Zamprogna disse:

    Tiago
    Creio que a solução apresentada seria uma alternativa pouco elegante, pois não considero de bom gosto enviar e-mails transacionais sem acentos.
    Como já citado anteriormente, se o problema são os acentos, certamente é porque o encoding dos arquivos está errado (diferente de UTF-8). Neste caso, basta baixar um pacote de templates com o encoding correto, ou traduzir diretamente os originais do inglês, no admin da loja.
    Abraço.

  21. Líbini disse:

    Gabriel,
    Estou com um problema somente com o formulário de contato, somente ele não é enviado. Apresenta o erro: Não foi possível enviar sua mensagem. Por favor, tente novamente mais tarde. Os demais e-mails transacionais estão indo normalmente, o que pode ser?
    Obrigada.

  22. Anderson disse:

    Tiago,
    Os meus emails funcionam perfeitamente. porem quando os envio, chegam todos com as tags htmls escritas e eu configurei os emails para chegar como html.
    Tento colocar imagem e aparece o img mesmo a imagem com o caminho correto, a href também, na verdade, se eu colocar um table pra montar a estrutura do email, aparece.
    Dá uma ajuda ai.. Abração camarada…

  23. Gabriel Zamprogna disse:

    Líbini

    Pode ser que o formulário de contato do seu Magento esteja desabilitado, ou alguma configuração incorreta (veja em Sistema > Configuração > GERAL > Contatos).

    Abraço!

  24. Líbini disse:

    Olá Gabriel,
    O form está habilitado e configurado.
    Já não sei onde procurar o erro, visto que todos os outros funcionam.
    Se puder indicar quem possa corrigir isso, eu agradeço, pois estou parada com a loja, por conta deste form.
    Obrigada.
    Líbini

  25. Rodrigo Heck disse:

    Olá,

    Meu formulário de contato, e os e-mails transacionais (nova venda, nova conta, etc) não são enviados pelo frontend utilizando um tema que baixei (hellopress), quando deixo com o tema padrão os e-mails são enviados normalmente.

    Existe alguma configuração no envio de e-mails distintos para cada tema?

    Desde já agradeço se alguém puder me ajudar.

    Um abraço,
    Rodrigo.

  26. Vitor Santana disse:

    Gabriel, boa noite.

    Então cara.. to com um problema que realmente não consegui resolver.

    Os meus e-mails só são enviados tambem quando eu tiro todos os acentos. Ai vc disse acima que deve ser a codificação, e eu fui la e baixei o proprio arquivo que vc disponibiliza aqui na sua comunidade. Porem o assunto aparece isso SW5zY3Jp5+NvIG5hIG5ld3NsZXR0ZXIgYmVtIHN1Y2VkaWRh e o conteudo não aparece nada…….. resumindo, com acento não vai……. tem ideia do que seja?

    Se não, pode me explicar onde eu mudo essa codificação? ai eu tendo me virar por aqui no DreamWeaver.

    Desde já agradeço sua atenção… muito obrigado pela ajuda.

    Vitor

  27. Alexandre Severo disse:

    Opa! Sei que o post é antigo mas estou com um problemaço aqui, todos os emails transaciosanais funcionam como de costume, porém atulaizamos os textos dos e-mails e estes não se alteram quando são enviados para os clientes.

    Estou preocupado pois é uma das formas de manter o cliente ciente de certas informações como prazos e indicações pós compra.

    Se puder me auxiliar agradeço, obs 1.3.2.4, fiz limpeza de todos os caches e mesmo assim nada.

    Obriagado pela atenção!

  28. Júnior disse:

    Este problema refere-se ao móudlo de pagamento da PAGSEGURO e MOIP. No no caso da Pagseguro, basta alterar a URL de retorno dentro do painel para http://www.loja.com.br/PagSeguro/standard/obrigado/ .

    Evidentemente que isto não permite o checkout do carrinho, mas é menos pior que o cliente ficar sem o e-mail de novo pedido.

  29. Mauricio Baruque disse:

    Caro Gabriel,

    VocÇe é a última esperança de resolver um proble que estou enfrentando há semanas:

    Estou montando a primeira loja magento para um cliente e o meu problema principal são os emails transacionais. Instalei a loja pela KingHost e ela já vem traduzida (em parte). Estou configurando a loja com certa dificuldade pois venho de outra tecnologia.
    Agora sim o problema:
    Pelo FTP descobri que não tenho o caminho (app/locale/pt_BR/template/email/sales), tenho apenas (app/locale/pt_BR) onde constam vários arquivos (.csv).
    Quando tento fazer a configuração de um email transacional, vou no (Admin > Sistema > E-mails transacionais > Adicionar novo e-mail) então aparece uma página onde devo escolher Modelo e Localidade. A localidade vem como padrão = português (Brasil) = e o modelo? Existem inúmeros! E todos ele em inglês.
    Um amigo me passou alguns modelos de emails traduzidos para eu criar o caminho (app/locale/pt_BR/template/email/sales) para ver se resolvia. Alguns emials já aparecem em portugûes quando escolho a opção padrão = Localidade = português (Brasil) = mas os arquivos em html que ele me enviou não aparecem para que eu escolha, por exemplo: criei um email chamado (status_do_pedido.html) e ele não aparece em Modelos, quando escolho a opção de Localidade (Brasil).
    Não sei o que estou fazendo de errado pois já entrei em fóruns, blogs e tudo mais que você possa imaginar e as respostas que tenho são evasivas e não contribuem em nada para resolver o meu problema. Muito me direcionam para o Mario Sam, onde também já pedi ajuda e não consegui nenhuma resposta adequada.
    Fica claro que sou iniciante e preciso de informações precisas e não apenas códigos daqui e dali, pois não vou entender nada.
    Me desculpe o desabafo mas quando vi o artigo postado por você tive a esperança de resolver meu problema.
    Abraço,
    Mauricio Baruque

    em tempo: será que existe algum caminho apontado para (app/locale/pt_BR/template/email/sales) onde vou conseguir ver os emails transacionais que crio?

  30. Mauricio Baruque disse:

    Para completar, a minha versão do magento é: 1.3.2.4

    Grato,
    Mauricio Baruque

  31. Ricardo disse:

    Quando tento enviar um email através do form “Avisar um amigo” aparece a mensagem “Informação de remetente inválido”. Outros e-mails estão funcionando. Alguém teria uma sugestão.
    Obs. Estou usando a versão 1.4.2.0
    Obrigado.

  32. André Xori disse:

    Meu problema era o SendMail.php
    Como eu migrei de servidor, o servidor antigo fez uma configuração especial pra funcionar no server deles. Tava desesperado já achando que tinha cagado tudo huahuahua

    Valeu cara!!! Salvou!!! Sucesso!

  33. Andre Correa disse:

    ja tentei de tudo o email do formulario funciona.. e o resto nao…
    so falta ver o item 5… sera que é o servidor o problema ?

  34. Andre Correa disse:

    opção 5 tambem checada.. os emails pelo formulario estao fuancionando…

  35. Andre Correa disse:

    ja fiz tudo o que esta escrito to usando magento 1.6.1 e nao manda emails transacional para os clientes.. que que eu faço ?

  36. Wermeston Newber disse:

    Oi bom dia, ja tentei de tudo porém meu newsletter não envia email, os outros emails chegam perfeitamente somente o do newsletter que não, o que pode ser?

  37. Renato disse:

    Gabriel, voce me salvou, usei esse seu ultimo sendmail.php e tudo esta normal! Brigadão

  38. André Vilaça disse:

    Gabriel, muito obrigado pelo código PHP que altera a função Mail. Minha hospedagem é na UOL Host e eles me passaram um código “sem noção” para substituir.
    Acabei de testar o seu e foi perfeito! Segui os passos e as configurações estavam OK, só me restou a alteração da função. Obrigado pela iniciativa, não sou um conhecedor de PHP e hoje você me ajudou muito. Valeu mesmo. Que Deus abençoe seu trabalho!

  39. Marcelo Oliveira disse:

    Galera a maneira mais fácil de resolver isso e instalando esse modulo no magenta.

    http://www.magentocommerce.com/magento-connect/ASchroder/extension/1865/aschroder.com-smtp-pro

    Duvido se não vai resolver pois estava com o mesmo problema e resolveu na hora.

    PS: Precisando e so mandar email para : marcelomop@gmail.com

    abraços

    Marcelo Oliveira

Deixe um comentário



© 2014 - Indexa Ltda. Todos os direitos reservados.