Discourse e-posta sorunlarını giderme

Discourse kurulum kılavuzu aracılığıyla yüklediniz, ancak e-posta çalışmıyor gibi görünüyor. Maalesef bu, yüklemeyi tamamlamak için yönetici olarak oturum açamayacağınız anlamına gelir. :cry: Sorunu giderelim!

doctor’u deneyin :woman_health_worker:

./discourse-doctor komutunu çalıştırırsanız, e-posta yapılandırmanızın bozuk olabileceğinin birkaç yolunu kontrol edecek ve tavsiyelerde bulunacaktır.

E-posta ayarlarını doğru girdiniz mi?

En basit yol ./discourse-setup komutunu yeniden çalıştırmaktır.

Ayrıca containers/app.yml dosyanızdaki ayarları iki kez kontrol edebilirsiniz. Geçerli bir e-posta bölümü şöyle görünür:

DISCOURSE_DEVELOPER_EMAILS: 'name@example.com'
DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: postmaster@discourse.example.com
DISCOURSE_SMTP_PASSWORD: aUd34cdWKCu6CTjfoH7ykk

Doğruluk için tüm değerleri yakından inceleyin. hepsinin hizalandığını, baştaki # karakterleri olmadığını ve geliştirici e-posta alanının çevresinde tek tırnak işareti bulunduğunu unutmayın.

app.yml dosyanızda herhangi bir hata varsa ve değişiklik yaptıysanız, bu değişikliklerin geçerli olması için kapsayıcıyı ZORUNLU yeniden oluşturmalısınız!

cd /var/discourse/
./launcher rebuild app

SMTP bağlantılarınız engelleniyor mu?

Sunucunuzun gerçekten e-posta sunucusuyla iletişim kurabildiğini doğrulamak için şu komutu verin:

telnet smtp.mailgun.org 587

Bu şekilde bağlanamıyorsanız, neredeyse engellenmişsinizdir. (Ve bağlanırsanız, SMTP için kaçış karakteri ctrl+] olur, ardından telnetten çıkmak için quit kullanın.)

Bu olursa, bulut sağlayıcınızın desteğiyle iletişime geçin ve e-posta bağlantılarınızın engellenmediğini onaylayın.

Discourse günlükleri ne diyor?

Komut satırından şu komutu çalıştırın:

cd /var/discourse
tail shared/standalone/log/rails/production.log

Bu, günlüğün son birkaç satırını gösterecektir. Postayla ilgili herhangi bir şey arayın. Tam günlükleri görüntülemeniz gerekiyorsa, deneyin.

more shared/standalone/log/rails/production.log

boşluk tuşuna basarak tüm günlüğü görürsünüz. E-postayla ilgili tüm iletileri yakından inceleyin.

E-posta sağlayıcı günlükleriniz ne diyor?

Discourse günlüklerinde veya posta yapılandırmanızda herhangi bir hata olmadığını varsayarsak, e-postalar muhtemelen gitti. Soru şu: e-posta sağlayıcınız onlarla ne yaptı?

Çoğu e-posta sağlayıcısının günlük görüntüleme işlevi vardır. E-posta etki alanınızın günlüklerini kontrol edin ve gelen e-postalara ne olduğunu görün.

Alanınız için DKIM ve SPF kayıtlarını doğru şekilde ayarladınız mı?

DKIM ve SPF için bu önemli DNS kayıtlarını girmelisiniz, aksi takdirde e-postalarınız yalnızca ara sıra gelebilir.

E-posta etki alanı doğru mu?

Adresten gelen varsayılan e-posta, yükleme etki alanı artı alt etki alanını temel alır, bu nedenle URL’niz discourse.example.com ise şöyle olacaktır:

noreply@discourse.example.com

Ancak posta sağlayıcınız şunları bekliyorsa:

noreply@example.com

… problemleriniz olabilir! Bunu aşmak için, bu satırı app.yml içinde düzenleyin ve yorumunu kaldırın.

## İlk kaydınız için 'From' e-posta adresini ayarlamak istiyorsanız, yorumunuzu kaldırın ve değiştirin:
#- exec: rails r "SiteSetting.notification_email='noreply@example.com'"
## İlk kayıt e-postasını aldıktan sonra, satırı yeniden yorumlayın. Yalnızca bir kez çalıştırılması gerekir.

Yukarıdaki satırın # işaretini kaldırdıktan ve gelen e-posta adresini gerektiği gibi ayarladıktan sonra yeniden oluşturma işlemi yapmanız gerekecektir.

Gerekirse bunu komut satırından da değiştirebilirsiniz:

./launcher enter app
rails r "SiteSetting.notification_email = 'discourse@yoursite.com'"
exit

Mailgun kullanıyorsanız – alan adınızı etkinleştirdiniz ve kredi kartı bilgilerini verdiniz mi?

Mailgun kullanıyorsanız, DKIM ve SPF kayıtlarınızı girdikten sonra https://mailgun.com/app/domains/YOUR.DISCOURSE.DOMAIN.com adresini ziyaret etmeniz ve “DNS Kayıtlarını Kontrol Et” düğmesini tıklamanız gerekir. Bu sayfanın üst kısmında “State ACTIVE” (sakinleştirici bir yeşil renkte) görmelisiniz. “State Unverified” yazıyorsa (korkutucu bir uyarı-sarı ile) Mailgun posta kabul etmeyecektir.

Mailgun artık posta teslim etmek için (sizin dışında) bir kredi kartı gerektiriyor. Mailgun günlüklerinizde “ücretsiz hesaplar” hakkında bir mesaj varsa, bu sizin sorununuzdur.

Diğer posta hizmetlerinin de benzer gereksinimleri vardır.

Posta etki alanı olarak bir IP adresi mi kullanıyorsunuz?

Bu bizim deneyimimizde işe yaramıyor. E-posta gönderirken 192.168.1.1 gibi bir IP adresi değil, bir alan adı kullanmalısınız.

Kayıt e-postası almadan oturum açmanız mı gerekiyor?

Bunu önermiyoruz, çünkü e-postanız hala bozuk ve e-posta çalışana kadar bozuk bir Discourse var. Ancak, e-postası bozuk olarak kesinlikle yönetici olarak oturum açmanız gerekiyorsa, yapmanız gerekenler:

cd /var/discourse
./launcher enter app
rake admin:create

Ve istemleri yanıtlayın. Görünmeleri birkaç saniye sürer. Şifre sorduğunda ne yazdığınızı göremezsiniz. Bu yüzden iki kez yazmanızı sağlar.

Kaynak: Troubleshooting email on a new Discourse install - sysadmin - Discourse Meta