Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v3.x.
#88258
Olá amigos, boa noite.

Hospedei o OpenCart em uma instância rodando o LAMP na AWS, tudo está funcionando perfeitamente, exceto o envio de e-mails. Não funciona o e-mail de forma geral, nem como administrador(pedidos, comentários e cadastro de novos clientes), como cliente (novo pedido, atualizações de pedidos e etc).

Usei o Putty para acessar a instância via SSH, testei a comunicação entre a instância e a Amazon SES, houve comunicação normalmente. Usei o protocolo telnet para testar, através deste comando:

telnet email-smtp.us-east-1.amazonaws.com 587 (testei na 465 também). Em ambos os testes recebi um 220 (OK).

Nos logs do OpenCart não aparece nada de erro, como se os e-mails estivessem sidos enviados normalmente.

Já testei com a portas: 25, 587 e 465 com e sem SSL e TLS. Nada funcionou!

Domínio e e-mail devidamente configurado no Amazon SES:

Imagem

Config de e-mail no OpenCart:

Imagem

Alguém já passou ou está enfrentando esse problema? Ou tem alguma dica que me ajude a resolver?

Muito obrigado por enquanto.
#88267
Eu uso o AWS SES em algumas instâncias que administro. Não encontrei problemas.
A configuração que utilizo não é muito diferente da sua. Eu uso os seguintes parâmetros:

Biblioteca: SMTP
Parametros: <vazio>
Servidor SMTP: ssl://email-smtp.us-east-1.amazonaws.com
Usuário SMTP: <a chave do seu usuário>
Senha SMTP: <a senha para o seu usuário>
Porta SMTP: 456
Tempo SMTP: 5

Veja que há nessa configuração alguns detalhes importantes.. Em Servidor SMTP é indisponsável o protocolo "ssl" antes da URL do servidor. Outro detalhe nesse campo é que você deve usar a URL para o servidor onde esta configurada a zona do seu domínio na AWS. No meu caso costumo configurar os domínios sempre na Virgínia que é compatível com essa URL que uso.

Outro detalhe não é bem nessa parte da configuração, é no próprio AWS SES. Antes de usar o servidor SMTP do SES você precisa configurar corretamente a zona. Precisa usar a sandbox, enviando emails para o seu endereço pessoal que você deve ter autorizado para testes na AWS. Também é fundamental que você tenha incluído no seu domínio as chaves TXT para que a AWS verifique que o domínio é de sua propriedade. Isso exige configuração do DNS do seu domínio o que varia muito de acordo com o provedor de domínio que você usa.

De qualquer maneira, depois de usar a sandbox é preciso abrir um ticket solicitando a liberação de uso em produção. É uma comunicação um pouco burocrática, vocẽ precisa informar uma série de coisas, como o uso que pretende fazer para o email, a maneira como pretende permitir o descadastramento dos usuários que não quiserem mais receber mensagens, etc.

Somente após isso é que você conseguirá enviar emails para qualquer endereço.
#88309
Muito obrigado pelas informações.
As configurações TXT eu adicionei na zona DNS, estão em ordem, tanto que consta como verificado o domínio no SES.
Eu uso o Norte da Virginia também, é o mesmo hostname que o seu.
Eu consigo enviar e-mails de teste dentro da Amazon SES, somente pelo OpenCart não rola.
No arquivo de log mail.log consigo ver a seguinte mensagem: O servidor SMTP recusou o e-mail do remetente!
No entanto o e-mail remetente está correto, acredito que tenha haver com essa questão que você comentou sobre solicitar a liberação para o modo de produção. Vou verificar como faço isto, deve ser o último passo para fazer funcionar.
#88320
Consegui "resolver".

Atualmente uso a versão 3.0.3.3 (Brasil 1.4.15).

Acessei o site opencart.com e baixei a versão 3.0.3.6 em inglês. Fui até a pasta system/library/mail e copiei o arquivo smtp.php.

Acessei minha instância via FTP, substitui o arquivo antigo pelo novo e a mágica aconteceu, os e-mails voltaram a funcionar normalmente.

Ou seja, as configurações no Amazon SES realmente estavam em ordem, inclusive estava em modo de produção.

Não sei exatamente o que há de errado no código, mas existe uma diferença entre os dois, pois na versão em inglês tem alguns laços de repetições a mais.

Enfim, finalmente vou deixar de quebrar a cabeça com isto.

Muito obrigado pela ajuda!
#90438
Voltei aqui pra responder eu mesmo :-)

Consertei o envio SMTP populando a tabela 'oc_event ' que só tem na versão 3.

Caso você tenha feito o upgrade da versão 2 para a 3, vai perceber que a tabela OC_EVENT não tem os dados que deveria ter.
Faça o downlaod do opencart e na pasta upload/install você vai encontrar o arquivo 'opencart.sql'.
Selecione somente a parte referente ao oc_event e importe no seu banco de dados.

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]