Problèmes de configuration de hostmail

Salut. J’espère que ça ne vous dérange pas que je m’approprie le fil de discussion.

Mon fournisseur d’hébergement n’a aucun problème avec les e-mails. Tous les tests à l’aide de divers outils fonctionnent - les ports sont ouverts et devraient pouvoir envoyer des e-mails. Le problème est qu’il ne fonctionne pas avec Discourse.

https://carlosthomas.net/photos/picture.php?/911/category/8

Quel que soit le port que j’essaie, j’obtiens toujours les mêmes erreurs.

J’ai créé manuellement des comptes et je peux me connecter, mais les e-mails sont nécessaires pour les invitations et la validation. J’ai testé avec MailGun et cela fonctionne - mais je n’arrive pas à comprendre pourquoi cela ne fonctionne pas avec mon fournisseur d’hébergement. Je les ai contactés et ils ont dit que tout devrait aller bien - donc je suis un peu perdu.

https://carlosthomas.net/photos/picture.php?/913/category/8

En tant que nouvel utilisateur, je ne peux poster que deux liens - mais ceux-ci devraient vous mener au reste des photos.

Faites-moi savoir s’il y a des journaux que vous aimeriez que je récupère - expérience limitée en *NIX, mais je peux suivre les instructions. Merci d’avance.

Merci @JammyDodger pour la séparation/le déplacement. J’espère obtenir de l’aide pour cela. Le serveur n’est pas permanent - c’est pour les tests - donc tous les journaux ou commandes requis peuvent être transmis pour trouver une solution.

En gros - l’e-mail fonctionne (principalement) avec MailGun mais pas avec le fournisseur d’hébergement. Les e-mails de MailGun vers des services gratuits (GMAIL, etc.) fonctionnent bien. Les tentatives d’envoi de MailGun vers mon domaine/e-mail hébergé échouent. Je ne suis pas sûr de ce qui se passe. L’utilisation de l’e-mail du domaine fonctionne très bien dans toute autre application - OSTicket/InvoiceNinja/Windows Mail/ThunderBird/etc.

Toute aide est appréciée. Merci d’avance.

C’est assez étrange, c’est certain, si vos identifiants hostmail fonctionnent dans d’autres outils et en supposant qu’ils sont correctement collés dans la configuration de discourse. Avez-vous des outils de sécurité qui pourraient bloquer le domaine hostmail ?
Vous pouvez également essayer de regarder dans \u003cdiscourse_url\u003e/logs pour voir s’il y a une erreur détaillée sur ce qui se passe.

Merci pour votre réponse. Voici quelques informations.

Message (12 copies signalées)

Exception de tâche : délai d'exécution expiré


Trace

/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:631:in `initialize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:631:in `open'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:631:in `tcp_socket'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:641:in `block in do_start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/timeout-0.4.0/lib/timeout.rb:186:in `block in timeout'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/timeout-0.4.0/lib/timeout.rb:193:in `timeout'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:640:in `do_start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-smtp-0.4.0/lib/net/smtp.rb:610:in `start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'

Pour clarifier - “hostmail” est juste le nom que je lui ai donné car c’est l’e-mail de mon fournisseur d’hébergement (GlowHost) du domaine sur lequel je teste - discourse.carlosthomas.net - qui fonctionne la plupart du temps avec MailGun - mais pas avec l’e-mail hébergé.

Je n’étais pas au courant de /logs - je peux refaire les paramètres et effacer les logs, puis tenter d’envoyer des e-mails et poster les informations si vous le souhaitez. Je pourrais aussi effacer les logs maintenant - envoyer à Gmail - ce qui réussira - puis envoyer à mon e-mail hébergé - ce qui échouera - et envoyer les logs.

Ajout de contexte. Des amis gèrent un site sur vBulletin 4.2.5 et je les héberge temporairement sur Discourse pour qu’ils puissent s’y familiariser. Le problème concerne les e-mails : je peux suivre les instructions pour créer manuellement les comptes, mais s’ils décident d’utiliser Discourse, ils auront besoin des e-mails pour ajouter des utilisateurs. Il y a aussi la question de l’importation, pour laquelle j’ai trouvé ce lien qui pourrait aider.

Mais le problème des e-mails doit être résolu. Je ne maintiens la machine avec Discourse que jusqu’à ce que ce problème soit résolu. Et j’essaie un peu de montrer quel est le support. Mon expérience avec les détails sur les forums et ce que j’ai vu suggère que l’utilisation/la migration/le support devraient être assez faciles une fois les exigences d’hébergement de la plateforme remplies. Et une fois que les méthodes officielles sont utilisées, obtenir du support devrait être assez facile.

Mais oui, c’est là que nous en sommes. En attente de commentaires.

1 « J'aime »

Salut à tous. Je vais essayer quelques trucs ce week-end, si tout va bien. J’ai l’intention de nettoyer/réinstaller et de poster l’avancement. Si quelqu’un a des suggestions avant cela, faites-le moi savoir.

Une fois que j’en serai là, j’ai l’intention de récupérer tous les journaux possibles et de les poster ici. J’utiliserai des mots de passe générés aléatoirement pour le processus afin de permettre aux personnes qui veulent aider d’y accéder. Voyons comment ça se passe.

Je suis en train de vérifier et de modifier le fichier app.yml. J’ai effacé les journaux au préalable. Je vais tenter d’envoyer des e-mails et je vous tiendrai informé.

EDIT
Ainsi, en effaçant les journaux et en envoyant des e-mails à Gmail ou à mon propre domaine, aucune erreur ne s’affiche. Je reçois des e-mails sur Gmail mais aucun sur mon domaine.

Les journaux de MailGun indiquent essentiellement ceci :

{
	"recipient": "me@mydomain",
	"id": "SCBCSJxDSqupdU9Da29rRw",
	"envelope": {
		"sender": "postmaster@mg.mydomain",
		"targets": "me@mydomain",
		"transport": "smtp",
		"sending-ip": "192.168.0.1"
	},
	"timestamp": 1697462206.8430145,
	"user-variables": {},
	"message": {
		"headers": {
			"from": "Discourse Test Forum <postmaster@mg.mydomain>",
			"message-id": "9d3b190d-bcbd-4378-8eb6-fc90cd57fe35@discourse.mydomain",
			"to": "me@mydomain",
			"subject": "[Discourse Test Forum] Email Deliverability Test"
		},
		"attachments": [],
		"size": 4546
	},
	"storage": {
		"region": "us-west1",
		"key": "BAABAQUOTl3y4PtvsqlN5Z2OvaxXslLlZA",
		"env": "production",
		"url": "https://storage-us-west1.api.mailgun.net/v3/domains/mg.mydomain/messages/BAABAQUOTl3y4PtvsqlN5Z2OvaxXslLlZA"
	},
	"reason": "generic",
	"delivery-status": {
		"enhanced-code": "",
		"mx-host": "mydomain",
		"description": "",
		"certificate-verified": true,
		"attempt-no": 1,
		"code": 550,
		"message": "Verification failed for <bounce+674b6a.be6180c-me=mydomain@mg.mydomain>\nThe mail server does not recognize bounce+674b6a.be6180c-me=mydomain@mg.mydomain as a valid sender.\nSender verify failed",
		"session-seconds": 40.878,
		"tls": true
	},
	"campaigns": [],
	"severity": "permanent",
	"tags": [],
	"recipient-domain": "mydomain",
	"flags": {
		"is-routed": false,
		"is-authenticated": true,
		"is-test-mode": false,
		"is-system-test": false
	},
	"log-level": "error",
	"event": "failed"
}

Je ne reçois ceci que lorsque j’essaie sur mon propre domaine. Si j’essaie sur n’importe quel autre domaine, cela fonctionne, qu’il s’agisse d’un e-mail gratuit ou non.

Voici les paramètres actuels dans app.yml :

## voici le modèle de conteneur Docker autonome tout-en-un
##
## Après avoir effectué des modifications dans ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ TRÈS PRUDENT LORS DE LA MODIFICATION !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire


templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Décommentez la ligne suivante pour activer l'écoute IPv6
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consultez https://meta.discourse.org/t/17247 pour plus de détails
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Définissez db_shared_buffers à un maximum de 25 % de la mémoire totale.
  ## sera défini automatiquement par bootstrap en fonction de la RAM détectée, ou vous pouvez le remplacer
  db_shared_buffers: "2048MB"

  ## peut améliorer les performances de tri, mais augmente l'utilisation de la mémoire par connexion
  #db_work_mem: "40MB"

  ## Quelle révision Git ce conteneur doit-il utiliser ? (par défaut : tests-passed)
  #version: tests-passed

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

  ## Combien de requêtes web simultanées sont prises en charge ? Dépend de la mémoire et des cœurs CPU.
  ## sera défini automatiquement par bootstrap en fonction des CPU détectés, ou vous pouvez le remplacer
  UNICORN_WORKERS: 8

  ## TODO : Le nom de domaine auquel cette instance Discourse répondra
  ## Obligatoire. Discourse ne fonctionnera pas avec un simple numéro IP.
  DISCOURSE_HOSTNAME: mydomain

  ## Décommentez si vous souhaitez que le conteneur soit démarré avec le même
  ## nom d'hôte (-h option) que celui spécifié ci-dessus (par défaut "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO : Liste des e-mails séparés par des virgules qui seront faits administrateurs et développeurs
  ## lors de la première inscription, par exemple 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'me@mydomain'

  ## TODO : Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
  # ADRESSE SMTP, nom d'utilisateur et mot de passe sont requis
  # ATTENTION le caractère '#' dans le mot de passe SMTP peut causer des problèmes !

  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: postmaster@mg.mydomain
  DISCOURSE_SMTP_PASSWORD: "mailgunpassword"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true             # (facultatif, par défaut true)
  #DISCOURSE_SMTP_FORCE_TLS: true
  DISCOURSE_SMTP_DOMAIN: mydomain
  DISCOURSE_NOTIFICATION_EMAIL: postmaster@mg.mydomain


  ## Si vous avez ajouté le modèle Lets Encrypt, décommentez ci-dessous pour obtenir un certificat SSL gratuit
  LETSENCRYPT_ACCOUNT_EMAIL: freemailaccount

  ## L'adresse CDN http ou https pour cette instance Discourse (configurée pour tirer)
  ## consultez https://meta.discourse.org/t/14857 pour plus de détails
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## La clé d'adresse IP de géolocalisation maxmind pour la recherche d'adresses IP
  ## consultez https://meta.discourse.org/t/-/137387/23 pour plus de détails
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Les plugins vont ici
## consultez https://meta.discourse.org/t/19157 pour plus de détails
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-docs.git
## Toutes les commandes personnalisées à exécuter après la construction
run:
  - exec: echo "Début des commandes personnalisées"
  ## Si vous souhaitez définir l'adresse e-mail 'De' pour votre première inscription, décommentez et modifiez :
  ## Après avoir reçu le premier e-mail d'inscription, re-commentez la ligne. Elle ne doit s'exécuter qu'une seule fois.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fin des commandes personnalisées"

Les seules modifications apportées à ceci seraient :

  DISCOURSE_SMTP_ADDRESS: smtp.mydomain
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: email@mydomain
  DISCOURSE_SMTP_PASSWORD: "mydomainmailpassword"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true             # (facultatif, par défaut true)
  #DISCOURSE_SMTP_FORCE_TLS: true
  DISCOURSE_SMTP_DOMAIN: mydomain
  DISCOURSE_NOTIFICATION_EMAIL: email@mydomain

Une fois que j’aurai une réponse de quelqu’un, je ferai ces modifications et vérifierai à nouveau les journaux. Ou alors… peut-être que je le fais tout simplement - je poste les journaux - et j’attends une réponse. Cela ne devrait pas prendre trop de temps. On verra.

1 « J'aime »

Honnêtement, je ne sais pas. :thinking: Cela ne semble pas être un problème avec Discourse. Je veux dire, l’e-mail a été envoyé correctement par Discourse, mais Mailgun n’a pas réussi à le livrer à l’adresse e-mail.

L’erreur 550 signifie « La boîte aux lettres de l’utilisateur était indisponible (par exemple, introuvable) »

1 « J'aime »

Merci pour votre réponse. Je ne sais pas ce qui se passe - l’e-mail fonctionne très bien. Il n’aime juste pas mon domaine, je suppose.

J’ai modifié le paramètre pour utiliser mon e-mail de domaine pour l’envoi. Je vais vérifier les journaux maintenant et voir quelles erreurs j’obtiens.

EDIT
Aucune erreur dans les journaux - mais j’ai obtenu ceci.

Je vais essayer depuis ./discourse-doctor - mais les journaux sont vraiment vides à /logs.

Et j’obtiens les mêmes erreurs postées au début.

L’adresse e-mail utilisée fonctionne. Je copie-colle les détails, y compris le mot de passe. J’ai testé le même e-mail sur ThunderBird / Windows Mail sans aucun problème. Donc…

J’ai contacté le support de mon fournisseur d’hébergement précédemment - voici la réponse.

Alors je ne sais pas. Peut-être y a-t-il quelque chose que je rate ? Les e-mails de test fonctionnent avec 465 / 587 et il n’y a aucun problème. Je suis perdu.

Y a-t-il des caractères spéciaux qui seraient bloqués ou causeraient un problème avec les paramètres de messagerie ?

Paramètres modifiés sur le port 465 et je ne vois que ceci dans /logs.

Rien de grave, je pense.

Je tiens à envoyer des félicitations et des remerciements à @Arkshine pour son aide jusqu’à présent. Apparemment, le VPS ne peut pas atteindre le domaine hébergé - c’est pourquoi les e-mails ne fonctionnent pas. C’est assez étrange, mais je contacte le fournisseur d’hébergement pour vérifier cela. Je mettrai à jour.

C’était assez rapide et facile. Un simple ping vers le domaine hébergé depuis une session SSH vers le VPS exécutant Discourse a montré ce qui se passait. Voyons comment cela se déroule.

EDIT
J’aurais aimé que @Arkshine réponde pour que je puisse marquer cela comme solution. Quoi qu’il en soit, j’ai eu des nouvelles du fournisseur d’hébergement. Apparemment, leurs serveurs ont automatiquement bloqué l’IP du VPS en raison de tentatives SMTP échouées. Je ne suis pas sûr de ce qui s’est passé - je vais changer les paramètres et refaire des tests pour voir. Cela devrait aller maintenant - l’IP hébergée est pingable depuis le VPS maintenant. J’ai testé les paramètres de messagerie et nous sommes prêts à partir !

J’espère que ces informations aideront quelqu’un. Si je pouvais modifier le message initial, j’y mettrais simplement un TLDR - ou ils peuvent simplement cliquer sur le lien pour accéder à la solution.

Encore une fois, un grand merci à @Arkshine pour toute son aide. Continuez votre bon travail !

2 « J'aime »

Je suis d’accord, il est d’une grande aide et une ressource précieuse. :slight_smile:

3 « J'aime »

J’aimerais aussi mentionner que son DP et son arrière-plan de profil sont vraiment cool. J’aime.

1 « J'aime »

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