Ich bin mir nicht sicher, wo ich das posten soll, aber ich frage mich, ob andere das auch erleben. Ich habe die offizielle Installationsanleitung mit DigitalOcean und Mailgun befolgt. Aber ich habe kürzlich festgestellt, dass ich viele Jobs::UserEmail-Job-Ausnahmen habe und keine Test-E-Mails senden kann.
Fehlerprotokolle
Nachricht (20584 Kopien gemeldet)
Job-Ausnahme: Ausführung abgelaufen
Backtrace
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:663:in `initialize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:663:in `open'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:663:in `tcp_socket'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:672:in `block in do_start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:185:in `block in timeout'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:192:in `timeout'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:671:in `do_start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.1/lib/net/smtp.rb:642:in `start'
/var/www/discourse/vendor/bundle/ruby/3.3.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.3.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/message.rb:269:in `deliver!'
/usr/local/lib/ruby/3.3.0/delegate.rb:87:in `method_missing'
/var/www/discourse/lib/email/sender.rb:296:in `send'
/var/www/discourse/app/jobs/regular/user_email.rb:79:in `send_user_email'
/var/www/discourse/app/jobs/regular/user_email.rb:39:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:184:in `block (3 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in <class:Config>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread'
Ich konnte die Ursache des Problems nicht ermitteln, da keine Einstellungen geändert wurden, meine Instanz auf dem neuesten Stand ist und mein Mailgun-Konto innerhalb der kostenlosen Nutzungsgrenze liegt. Daher habe ich ein Support-Ticket bei DigitalOcean erstellt, da ich vermutete, dass sie Port 587 blockiert haben könnten. Ich erhielt im Grunde eine kurze Antwort, dass sie SMTP-Verkehr eingeschränkt haben und die Nutzung ihres Partners SendGrid empfehlen.
DigitalOcean E-Mail
Wir verstehen, dass Sie Bedenken hinsichtlich der auf Ihrem Konto bestehenden SMTP-Beschränkungen haben. DigitalOcean ist kein dedizierter E-Mail-Host und die Bekämpfung von Spam ist ein ständiger Kampf. Aus diesem Grund wurden für alle Konten Beschränkungen eingeführt.
Wir möchten Ihnen auch einige zusätzliche Hintergründe zu diesem Problem geben. Da IP-Adressen in Cloud-Umgebungen sehr häufig verwendet und wieder freigegeben werden, gelten sie als dynamisch und unzuverlässig. Sie haben beispielsweise eine IP-Adresse zugewiesen und sind ein verantwortungsbewusster Mail-Nutzer. Sie befolgen alle Best Practices für E-Mails und senden niemals Spam oder unerwünschte E-Mails. Wenn Sie dann Ihren Droplet nicht mehr benötigen, zerstören Sie ihn, und die IP-Adresse kann einem anderen DigitalOcean-Nutzer zugewiesen werden. Dieser Nutzer nutzt die Gelegenheit, eine große Menge Spam zu versenden, bevor unser Sicherheitsteam gegen das offending Konto vorgeht.
Mail-Anbieter wie Gmail, Microsoft und andere können nicht feststellen, ob E-Mails, die von einer IP-Adresse stammen, legitim sind, bis diese eine schlechte Reputation erlangt hat. Bis dahin ist der Schaden bereits angerichtet. Es ist sicherer, jegliche E-Mails von Plattformen wie Internet Service Providern und Cloud-Hosting-Umgebungen zu blockieren, auf denen IP-Adressen dynamisch zugewiesen werden und inhärent riskant sind.
Dies reduziert zwar die Möglichkeiten für Spammer, beeinträchtigt aber auch legitime Nutzer. Unser Abuse Operations Team arbeitet mit SBLs zusammen, um die IPs von den Blacklists zu entfernen. Aus diesem Grund beschränken wir den SMTP-Verkehr auf der gesamten DigitalOcean-Plattform. Das bedeutet, dass wir die SMTP-Beschränkung, die auf Ihrem Konto liegt, nicht aufheben können.
Wir verstehen, dass Ihr Workflow möglicherweise E-Mail-Anforderungen hat. Als Lösung für diese Einschränkung haben wir eine Partnerschaft mit SendGrid geschlossen, um allen unseren Kunden eine bessere Lösung anzubieten, bei der Sie sich keine Sorgen um IP-Reputation und Blacklisting machen müssen. Weitere Informationen dazu finden Sie in unserem Artikel hier. Über SendGrid können Sie 100 kostenlose E-Mails pro Tag versenden, und wenn Ihre Anforderungen über das kostenlose Kontingent hinausgehen, wenden Sie sich gerne an den SendGrid-Support, um einen besseren Plan für Ihre Bedürfnisse zu wählen.
Wir helfen Ihnen gerne weiter, wenn Sie weitere Fragen haben. Zögern Sie also bitte nicht, sich an uns zu wenden.
----
Dies ist eine automatisierte Antwort, die dazu dient, die benötigten Informationen schnell zu erhalten, um Ihnen helfen zu können. Sie müssen auf diese E-Mail antworten, um weitere Unterstützung zu erhalten.
DigitalOcean Support Team
Haben andere diese zufällige Problemstellung erlebt? Ich möchte sicherlich nicht gezwungen sein, ohne triftigen Grund zu SendGrid zu wechseln.
Bearbeiten…
Ich habe gerade diesen Thread Looks like DO is disabling Smtp in their Discourse hosting plans bemerkt, also scheint es, dass jeder, der DigitalOcean nutzt, in Schwierigkeiten stecken könnte.
