hostmailの設定に関する問題

こんにちは。スレッドを乗っ取ってもよろしいでしょうか。

私のホスティングプロバイダーは、メールに関して問題はありません。さまざまなツールを使用したすべてのテストは機能しており、ポートは開いており、メールを送信できるはずです。問題は、Discourseでは機能しないことです。

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

どのポートを試しても、同じエラーが発生します。

手動でアカウントを作成し、ログインすることはできますが、招待や検証にはメールが必要です。MailGunでテストしたところ、機能しましたが、ホスティングプロバイダーで機能しない理由がわかりません。彼らに連絡したところ、すべて問題ないはずだと言われたので、途方に暮れています。

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

新規ユーザーとして投稿できるリンクは2つだけですが、それらは残りの写真にアクセスできるはずです。

確認してほしいログがあればお知らせください。*NIXの経験は限られていますが、指示に従うことはできます。よろしくお願いします。

分割/移動について@JammyDodgerさん、ありがとうございます。これについていくつか支援をいただければ幸いです。サーバーは恒久的ではなくテスト用なので、解決策を見つけるために必要なログやコマンドはすべて提供できます。

基本的に、メールはMailGunでは(ほとんど)機能しますが、ホスティングプロバイダーでは機能しません。MailGunから無料サービス(GMAILなど)へのメールは問題なく機能します。MailGunから私のドメイン/ホストされたメールへの送信を試みると失敗します。何が起こっているのかわかりません。ドメインメールの使用は、他のどのアプリケーション(OSTicket/InvoiceNinja/Windows Mail/ThunderBird/など)でも問題なく機能します。

どんな助けでも感謝します。よろしくお願いします。

確かに、ホストメールの認証情報が他のツールで機能し、ディスコースの設定に正しく貼り付けられていると仮定すると、非常に奇妙です。ホストメールドメインをブロックする可能性のあるセキュリティツールはありますか?

何が起こっているのか詳細なエラーを確認するために、\u003cdiscourse_url\u003e/logs を確認することもできます。

返信ありがとうございます。以下に情報を示します。

Message (12 copies reported)

Job exception: execution expired


Backtrace

/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!'

したがって、明確にするために、「hostmail」は、テスト中のドメインであるdiscourse.carlosthomas.netのホスティングプロバイダー(GlowHost)のメールであるため、私が付けた名前です。これはMailGunではほとんど問題なく機能しますが、ホストされているメールでは機能しません。

/logsについては知りませんでした。設定をやり直してログをクリアし、メールを試してから情報を投稿することができます。ログを今クリアして、Gmailに送信(成功するはずです)、次にホストされているメールに送信(失敗するはずです)して、ログを投稿することもできます。

コンテキストを追加します。友人がvBulletin 4.2.5でサイトを運営しており、私はDiscourseを一時的にホストして、彼らに感触をつかんでもらっています。問題はメールです。アカウントを手動で作成する指示には従えますが、Discourseに決定した場合、ユーザーを追加するためにメールが必要になります。インポートの部分もあります。このリンクを見つけました。役立つと思います。

しかし、メールの問題を解決する必要があります。この問題が解決するまで、Discourseを搭載したボックスを稼働させておきます。そして、サポートがどのようなものかを示すように努めています。フォーラムの詳細と、これまでに見たことから、プラットフォームのホスティング要件が満たされれば、使用/移行/サポートは非常に簡単になるはずです。そして、公式の方法を使用すれば、サポートを受けるのも十分に簡単になるはずです。

しかし、それが現状です。フィードバック待ちです。

「いいね!」 1

皆さん、こんにちは。うまくいけば、週末にいくつかの作業を試みます。クリーンインストール/再インストールを行い、進捗を投稿するつもりです。それまでに何か提案があれば、お知らせください。

その段階に達したら、見つけられるログをすべて取得してここに投稿するつもりです。プロセス中にランダムに生成されたパスワードを使用して、支援したい人がアクセスできるようにします。どうなるか見てみましょう。

アプリの app.yml ファイルのチェックと変更を行っています。事前にログをクリアしました。メール送信を試して、結果を報告します。

編集
ログをクリアして、Gmail または自分のドメインにメールを送信したところ、エラーは表示されませんでした。Gmail ではメールを受信しましたが、自分のドメインでは受信できませんでした。

MailGun のログには、基本的に次のように表示されます。

{
	"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"
}

自分のドメインで試した場合にのみ、このメッセージが表示されます。他のドメイン(無料メールかどうかにかかわらず)で試しても問題ありません。

app.yml の現在の設定は次のとおりです。

## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Uncomment the next line to enable the IPv6 listener
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Uncomment these two lines if you wish to add Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Set db_shared_buffers to a max of 25% of the total memory.
  ## will be set automatically by bootstrap based on detected RAM, or you can override
  db_shared_buffers: "2048MB"

  ## can improve sorting performance, but adds memory usage per-connection
  #db_work_mem: "40MB"

  ## Which Git revision should this container use? (default: 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

  ## How many concurrent web requests are supported? Depends on memory and CPU cores.
  ## will be set automatically by bootstrap based on detected CPUs, or you can override
  UNICORN_WORKERS: 8

  ## TODO: The domain name this Discourse instance will respond to
  ## Required. Discourse will not work with a bare IP number.
  DISCOURSE_HOSTNAME: mydomain

  ## Uncomment if you want the container to be started with the same
  ## hostname (-h option) as specified above (default "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: List of comma delimited emails that will be made admin and developer
  ## on initial signup example 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'me@mydomain'

  ## TODO: The SMTP mail server used to validate new accounts and send notifications
  # SMTP ADDRESS, username, and password are required
  # WARNING the char '#' in SMTP password can cause problems!
  
  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             # (optional, default true)
  #DISCOURSE_SMTP_FORCE_TLS: true
  DISCOURSE_SMTP_DOMAIN: mydomain
  DISCOURSE_NOTIFICATION_EMAIL: postmaster@mg.mydomain


  ## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
  LETSENCRYPT_ACCOUNT_EMAIL: freemailaccount

  ## The http or https CDN address for this Discourse instance (configured to pull)
  ## see https://meta.discourse.org/t/14857 for details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com
  
  ## The maxmind geolocation IP address key for IP address lookup
  ## see https://meta.discourse.org/t/-/137387/23 for details
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## The Docker container is stateless; all data is stored in /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins go here
## see https://meta.discourse.org/t/19157 for details
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
## Any custom commands to run after building
run:
  - exec: echo "Beginning of custom commands"
  ## If you want to set the 'From' email address for your first registration, uncomment and change:
  ## After getting the first signup email, re-comment the line. It only needs to run once.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

このファイルに加えられた変更は次のとおりです。

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             # (optional, default true)
  #DISCOURSE_SMTP_FORCE_TLS: true
  DISCOURSE_SMTP_DOMAIN: mydomain
  DISCOURSE_NOTIFICATION_EMAIL: email@mydomain

誰かからの返信を受け取ったら、これらの変更を加えてログを確認します。あるいは、自分で変更を加えてログを投稿し、返信を待つこともできます。それほど時間はかからないはずです。様子を見ます。

「いいね!」 1

正直、わかりません :thinking: Discourse の問題ではないようです。メールは Discourse から正常に送信されましたが、Mailgun がそのメールアドレスに配信できませんでした。

エラー 550 は「ユーザーのメールボックスが利用できませんでした(例:見つかりません)」を意味します。

「いいね!」 1

返信ありがとうございます。何が問題なのかわかりません。メールは正常に機能しています。ドメインが気に入らないだけだと思います。

送信にドメインメールを使用するように設定を変更しました。今すぐログを確認して、どのようなエラーが発生するか確認します。

編集
ログにエラーはありませんが、これが発生しました。

./discourse-doctor から試してみます。しかし、ログは /logs で完全に空です。

そして、最初に投稿されたのと同じエラーが発生します。

使用しているメールアドレスは機能します。パスワードを含む詳細をコピー&ペーストしました。ThunderBird / Windows Mail で同じメールを問題なくテストしました。ですから…

以前、ホスティングプロバイダーのサポートに連絡したところ、次のような返信がありました。

ですから、わかりません。何か見落としていることがあるのでしょうか?テストメールは 465 / 587 で機能し、問題はありません。お手上げです。

ブロックされたり、メール設定で問題を引き起こしたりする可能性のある特殊文字はありますか?

ポートを 465 に変更しましたが、/logs でこれしか表示されません。

重大な問題はないと思います。

これまでのご支援に感謝し、@Arkshine さんに称賛を送りたいと思います。どうやらVPSがホストされているドメインに到達できないため、メールが機能しないようです。これは非常に奇妙ですが、ホスティングプロバイダーに連絡して確認します。更新します。

これは非常に迅速かつ簡単でした。VPSからホストされているドメインへの簡単なpingは、何が起こっているかを示しました。どうなるか見てみましょう。

編集
@Arkshine さんが返信してくれたら、それを解決策としてマークできたのにと思います。とにかく、ホスティングプロバイダーから返信がありました。どうやら、SMTPの試行に失敗したため、サーバーがVPS IPを自動的にブロックしたようです。何が起こったのかはよくわかりませんが、設定を変更して再度テストを実行してみます。これで大丈夫なはずです。VPSからホストされているIPにpingできるようになりました。メール設定をテストし、すべて問題なく動作しました!

この情報が誰かの役に立つことを願っています。OPを編集できれば、TLDRを入れることができます。または、解決策にアクセスするためにリンクをクリックするだけです。

重ねて、@Arkshine さん、ご協力ありがとうございました。これからも頑張ってください!

「いいね!」 2

私も同感です。彼は素晴らしい助けとなり、リソースです。 :slight_smile:

「いいね!」 3

彼のDPとプロフィール背景も本当にクールだということも言及したいと思います。気に入りました。

「いいね!」 1

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