こんにちは、
Discourseを初めて利用し、DigitalOceanでホストしているフォーラムを立ち上げているのですが、SMTPまたはポートに関連する問題が発生しています。そこで、Googleログインやソーシャルログインを採用しており、ローカルでのサインアップ/ログインが不要な場合でも問題ないか、ご経験をお聞かせください。
こんにちは、
Discourseを初めて利用し、DigitalOceanでホストしているフォーラムを立ち上げているのですが、SMTPまたはポートに関連する問題が発生しています。そこで、Googleログインやソーシャルログインを採用しており、ローカルでのサインアップ/ログインが不要な場合でも問題ないか、ご経験をお聞かせください。
デフォルトでは、DO では SMTP がブロックされています。 メールを使用したい場合は、どこかにプロキシを用意する必要があります。多くの人が、クラウド上の Discourse には Mailgun がうまく機能すると述べていますが、私自身はそのような経験はありません。
これが求めているものかもしれません:
はい、SMTP がなくてもソーシャルログイン(Discord、Google など)や Discourse ID(セットアップ不要)を使用できます。ダイジェストやメール通知は利用できなくなりますが、目的が「コミュニティの構築」だけであれば、エンゲージメントが低くても問題なく機能します(ダイジェストはリテンション向上のために設計されています)。
素晴らしいですね。SendGrid、Mailgun、Resendを試してみましたが、同じ問題が発生しました。ポートの問題かもしれませんので、すべてのポートを試しました。当面は、ソーシャルログインが正常に動作するか確認し、ローカルログインを廃止したいと考えています。
ローカルログインを無効にしたい場合は、enable local logins サイト設定を無効にできます。また、Discourse ID の仕組みを試すこともできます。
@abeen さん、こんにちは!ようこそ ![]()
私は DigitalOcean(および他のクラウドサーバー)で Mailgun と Resend を使用して、数多くのセルフホスト環境を構築してきました。どのような問題に直面しているのか、もう少し詳しく教えていただけますか?適切な設定で app.yml を編集されていますか?これは標準的なインストールだと想定していますか?
Resend の場合:
DISCOURSE_HOSTNAME: <forum.yourforum.etc>
DISCOURSE_DEVELOPER_EMAILS: <your-email@emailaddress.com>
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_PORT: 2525
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: "xxxx"
Mailgun の場合:
DISCOURSE_HOSTNAME: <forum.yourforum.etc>
DISCOURSE_DEVELOPER_EMAILS: <your-email@emailaddress.com>
DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
DISCOURSE_SMTP_PORT: 2525
DISCOURSE_SMTP_USER_NAME: <your.mailgun.acccount.email>
DISCOURSE_SMTP_PASSWORD: "xxxx"
DOは「以前ブロックされたポート25に加えて、2025年3月6日以降、ポート465と587もドロレットでブロックされています。これは、DigitalOceanのサーバーがスパムメールの送信に利用されないようにするためです。」と発表しています。
また、管理パネル内では、30件のメールジョブが失敗していることが確認されています。app.ymlを確認し、メールサーバーの設定が正しいかご確認ください。Sidekiqでの失敗したジョブを確認する。
Resend APIを再作成し、ポートを587に変更、2525でも試しましたが、何も機能しません。
これが私のyamlファイルです。
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_HOSTNAME: dobato.au
DISCOURSE_DEVELOPER_EMAILS: myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: 「re_my password here」
DISCOURSE_SMTP_PORT: 2525
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
DISCOURSE_SMTP_DOMAIN: dobato.au
'password' または "password")を使用する必要があります。forum.dobato.au や discourse.dobato.au のような形式にする必要があります(ネームサーバーの設定を確認してください)。ルートドメインインストールを意図していない限り、これを修正する必要があります。587 です。STARTTLS の開始を強制する意味はありません。基盤となる Ruby メーラー(ActionMailer)は enable_starttls_auto: true を使用しており、サーバー(Resend)が対応していれば自動的に接続を TLS にアップグレードします。この行を削除してください。正しい app.yml セクションは以下のようになります:
DISCOURSE_HOSTNAME: dobato.au # (確認してください - 誤っている可能性があります!)
DISCOURSE_DEVELOPER_EMAILS: myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: "re_actual_api_key_here" # ストレートクォートに注意!
DISCOURSE_SMTP_PORT: 587
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
YML ファイルは構文とスペースに非常に厳格です。既存のテンプレートファイルの書式を維持することが重要です(discourse_docker/samples/standalone.yml at main · discourse/discourse_docker · GitHub を参照してください)。
しかし、DigitalOcean は 587 をブロックしているため、2525 が使用されています。
あ、DOのこと忘れてたわ、笑。
だいぶ前に移行したからな。頭の中では Resend と Hetzner しか考えてなかった。だから 2525 を使えばいい(移行時に切り替えたことを今思い出した)。編集:投稿を修正した。ありがとう、Jakee
上記の優れたアドバイスに加えて、rake emails:test(Troubleshoot email on a new Discourse install を参照)を実行して直ちにエラーを表示させることが、おそらく役立つでしょう。
私のサイトがクラッシュしました。新しいサイトで会員数も少ないため、カスタムページと会員データをどうダウンロードすればよいか分かりません。SMTPは全く使いたくありません。
そのような事態になってしまい、お気の毒です。
はい、おそらく yml ファイルに問題があるのでしょう。メールアドレスやパスワードを伏せて、ファイル全体をここに貼り付けてください。起動までこんなに苦労するはずはありません。
気になったのですが、DigitalOcean で使用しているドロプレットのサイズはどれくらいですか?
ネームサーバーの設定が正しく行われているか確認はできましたか?
こんにちは、
私は Basic / 1 vCPU / 2 GB RAM / 50 GB ディスク環境です。
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_HOSTNAME: dobato.au
DISCOURSE_DEVELOPER_EMAILS: myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: re_mypassword
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
DISCOURSE_SMTP_DOMAIN: dobato.au
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_FROM_ADDRESS: noreply@dobato.au
UNICORN_WORKERS: 4
SMTPは使用したくありません。いくつかのコマンドでこの問題をググると、Nginx と Unicorn が実行されていないと表示されます。
私の以前の投稿を注意深くお読みください。こちらです。あなたの yml ファイルが正しくありません。
これは活発ではないフォーラムであれば動作するはずです。スワップファイルは設定されていますか?コマンドラインで free -h を実行し、その出力をここに投稿してください。
curl: (52) サーバーからの返信が空です
root@dobato:~# free -h
total used free shared buff/cache available
Mem: 1.9Gi 201Mi 1.2Gi 4.0Mi 507Mi 1.6Gi
Swap: 2.0Gi 0B 2.0Gi
DiscourseをAmazon Lightsailで運用するのはどうでしょうか?Amazon SESのSMTPメール機能も利用可能です。
私は「 」、二重引用符を持っています
なるほど。Lightsail で SES を使って Discourse をホストすることは可能です(ここにはそうしているユーザーもいます)。もしまだ試していないなら、ポート 2525 を試してみるのも一案です。ただ、これらのポートに関する手間を避けたい場合は、Hetzner や Lightsail などの別のホスティングサービスへ移行する選択肢もあります。
これで再構築があまりにも早く終了してしまいます。なぜでしょうか?