Problema ao enviar e-mails

Olá.

Eu estava tentando enviar e-mails após uma troca de servidor de e-mail, antes funcionava bem, no entanto, agora não consigo enviar e-mails. O problema é que a conexão está 100% funcionando, como você pode ver. Mas por algum motivo, ele não consegue enviar o e-mail.

Endereço de e-mail para teste de e-mail? ('n' para pular) [community@brohosting.eu]:
Enviando e-mail para community@brohosting.eu. . .
Testando o envio para community@brohosting.eu usando smtppro.zoho.eu:587, nome de usuário: info@brohosting.eu com autenticação de login.
Conexão com o servidor SMTP bem-sucedida.
Enviando para community@brohosting.eu. . .
Falha ao enviar e-mail.
fim do arquivo alcançado

Alguma sugestão?

Verifique se seu provedor de hospedagem de VPS desbloqueou a porta SMTP (embora a conexão pareça ter sido confirmada)… verifique também os logs do seu serviço de e-mail para obter evidências da solicitação.

1 curtida

Ele está rodando no meu Raspberry como sempre rodou. Mas sim, a conexão está boa. Vou verificar com a Zoho.

Já vi essa mensagem de "fim de arquivo" antes, mas não me lembro qual foi a resolução. Você pode encontrá-la se pesquisar aqui.

Não deveria haver nenhuma solução para isso. Por que eu precisaria modificar algo, se a conexão foi bem-sucedida?

Além disso, sim, encontrei vários tópicos como esse, inclusive um tópico onde você respondeu, mas não vou voltar para a porta 465 que está obsoleta. Obviamente, o problema é com o Discourse ou sua biblioteca de envio de e-mail.

Você se importaria de compartilhar seu app.yml com redação? Acredito que algo esteja ausente ou mal configurado na sua seção SMTP.

1 curtida

Eu posso compartilhar, mas como seria mal configurado se a conexão fosse bem-sucedida?

## este é o modelo de contêiner Docker Discourse autônomo e tudo-em-um
##
## Após fazer alterações neste arquivo, você DEVE reconstruir
## /var/discourse/launcher rebuild app
##
## TENHA MUITO CUIDADO AO EDITAR!
## ARQUIVOS YAML SÃO SUPER SUPER SENSÍVEIS A ERROS DE ESPAÇAMENTO OU ALINHAMENTO!
## visite http://www.yamllint.com/ para validar este arquivo conforme necessário

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Descomente estas duas linhas se desejar adicionar Lets Encrypt (https)
#  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"

## quais portas TCP/IP este contêiner deve expor?
## Se você quiser que o Discourse compartilhe uma porta com outro servidor web como Apache ou nginx,
## veja https://meta.discourse.org/t/17247 para detalhes
expose:
  - "8080:8080"   # http
  - "15432:5432" # PostgreSQL
#  - "8443:8443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Defina db_shared_buffers para um máximo de 25% da memória total.
  ## será definido automaticamente pelo bootstrap com base na RAM detectada, ou você pode substituir
  #db_shared_buffers: "256MB"

  ## pode melhorar o desempenho da classificação, mas adiciona uso de memória por conexão
  #db_work_mem: "40MB"

  ## Qual revisão Git este contêiner deve usar? (padrão: tests-passed)
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  EMBER_CLI_PROD_ASSETS: 1
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Quantas requisições web concorrentes são suportadas? Depende da memória e dos núcleos da CPU.
  ## será definido automaticamente pelo bootstrap com base nas CPUs detectadas, ou você pode substituir
  #UNICORN_WORKERS: 3

  ## TODO: O nome de domínio que esta instância do Discourse responderá
  ## Obrigatório. Discourse não funcionará com um número IP simples.
  DISCOURSE_HOSTNAME: community.brohosting.eu

  ## Descomente se você quiser que o contêiner seja iniciado com o mesmo
  ## nome de host (-h option) especificado acima (padrão "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de e-mails separados por vírgula que serão feitos administradores e desenvolvedores
  ## na inscrição inicial, exemplo 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'community@brohosting.eu'

  ## TODO: O servidor de e-mail SMTP usado para validar novas contas e enviar notificações
  # ENDEREÇO SMTP, nome de usuário e senha são obrigatórios
  # ATENÇÃO: o caractere '#' na senha SMTP pode causar problemas!
  DISCOURSE_SMTP_ADDRESS: smtppro.zoho.eu
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: info@brohosting.eu
  DISCOURSE_SMTP_PASSWORD: "XXXXXXXXXXXX"
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, padrão true)
  DISCOURSE_SMTP_DOMAIN: brohosting.eu
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_NOTIFICATION_EMAIL: community@brohosting.eu

  ## Se você adicionou o modelo Lets Encrypt, descomente abaixo para obter um certificado SSL gratuito
#  LETSENCRYPT_ACCOUNT_EMAIL: info@brohosting.eu

  ## O endereço CDN http ou https para esta instância do Discourse (configurado para puxar)
  ## veja https://meta.discourse.org/t/14857 para detalhes
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## A chave de endereço IP do serviço de geolocalização MaxMind para consulta de endereço IP
  ## veja https://meta.discourse.org/t/-/137387/23 para detalhes
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
## O contêiner Docker é sem estado; todos os dados são armazenados em /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins vão aqui
## veja https://meta.discourse.org/t/19157 para detalhes
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-chat.git
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-voting.git
          - git clone https://github.com/discourse/discourse-chat-integration.git


## Quaisquer comandos personalizados para executar após a construção
run:
  - exec: echo "Início dos comandos personalizados"
  ## Se você quiser definir o endereço de e-mail 'De' para seu primeiro registro, descomente e altere:
  ## Após receber o primeiro e-mail de inscrição, comente a linha novamente. Ela só precisa ser executada uma vez.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fim dos comandos personalizados"

O info@brohosting.eu tem a configuração correta para enviar e-mails como community@brohosting.eu?

Isso precisa ser verificado no lado do seu provedor de SMTP.

4 curtidas

Vou tentar algo e avisarei vocês.

Obrigado Bhanu, eu não prestei atenção suficiente nisso, eu odeio as configurações do Zoho porque eles escondem essas opções demais.

1 curtida

A boa notícia é que você não passou 5 dias depurando a biblioteca smtp como você sugeriu!

(Eu passei uma dúzia de horas ao longo de muitos dias recentemente depurando o código que inseria um menu suspenso que não funcionava. Eu examinei o café que inseria o menu suspenso. Eu examinei o café que produzia os dados para o menu suspenso. Eu o comparei com o funcionamento de outros menus suspensos. Então, eu encontrei uma pequena linha de css que eu havia inserido que fez com que não houvesse espaço para o menu suspenso se expandir.)

Fico feliz que você conseguiu!

3 curtidas

Quer dizer, ainda poderia pelo menos verificar e gerar um erro melhor, porque isso é realmente confuso.

É por isso que a instalação padrão inclui uma lista de provedores de e-mail recomendados. Se você quiser se desviar dessas recomendações, também aceitará a complexidade técnica adicional que isso introduz. Nem todos os servidores de e-mail se comportam da mesma forma, não cabe ao Discourse abordar isso.

O resumo do acima é que você configurou mal o Zoho. O Discourse não pode ver a configuração lá e assume que você está fornecendo informações corretas. Se você tivesse executado novamente ./discourse-setup, ele teria perguntado novamente o endereço de envio, que você teria inserido incorretamente devido a essa má configuração.

Podemos salvar os usuários de muitos problemas, mas raramente de si mesmos. Da próxima vez, sugiro focar nos aspectos mais prováveis e verificar os detalhes em sistemas externos, antes de insistir que o problema está no código que está sendo utilizado para atender a dezenas de milhões de usuários. Provavelmente o levará à sua resposta muito mais rapidamente.

Você está certo, mas, novamente, você também poderia mencionar isso no guia de solução de problemas de e-mail, mesmo que esta seja uma etapa bastante autoexplicativa antes de configurar o Discourse.

De qualquer forma, sou grato aos colegas acima pela ajuda.

Isso seria ótimo.

Mas não está claro que “fim de arquivo alcançado” sempre significará “você falhou em configurar seu serviço de e-mail para o endereço de envio que você usou” ou o que quer que tenha sido que você fez para corrigir as coisas.

Acontece que há muitas coisas que podem dar errado depois que o Discourse se conecta com sucesso a um servidor de e-mail. Se você quiser uma mensagem de erro melhor, peça ao Zoho para fornecer uma em vez de apenas encerrar a conexão.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.