2015-06-25 5 views
6

Ich habe einen Cronjob, der jeden Tag Newsletter sendet. Aus irgendeinem Grund gab es heute einen Fehler.Rails 4 Net :: SMTPSyntaxError: 501 Syntaxfehler für Massen-E-Mails

überprüfte ich die Stack-Trace und bekam diese

Net::SMTPSyntaxError: 501 Syntax error 

    from /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/smtp.rb:957:in `check_response' 
    from /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/smtp.rb:926:in `getok' 
    from /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/smtp.rb:869:in `rcptto' 
    from /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/smtp.rb:850:in `block in rcptto_list' 
    from /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/smtp.rb:848:in `each' 
    from /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/smtp.rb:848:in `rcptto_list' 
    from /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/smtp.rb:663:in `send_message' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/mail-2.6.3/lib/mail/network/delivery_methods/smtp.rb:113:in `block in deliver!' 
    from /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/smtp.rb:521:in `start' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/mail-2.6.3/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/mail-2.6.3/lib/mail/message.rb:2141:in `do_delivery' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/mail-2.6.3/lib/mail/message.rb:236:in `block in deliver' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/actionmailer-4.1.8/lib/action_mailer/base.rb:527:in `block in deliver_mail' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/activesupport-4.1.8/lib/active_support/notifications.rb:159:in `block in instrument' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/activesupport-4.1.8/lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/activesupport-4.1.8/lib/active_support/notifications.rb:159:in `instrument' 
... 3 levels... 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/commands/console.rb:90:in `start' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/commands/console.rb:9:in `start' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:69:in `console' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:40:in `run_command!' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/commands.rb:17:in `<top (required)>' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/app_rails_loader.rb:43:in `require' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/app_rails_loader.rb:43:in `block in exec_app_rails' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/app_rails_loader.rb:32:in `loop' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/app_rails_loader.rb:32:in `exec_app_rails' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/lib/rails/cli.rb:5:in `<top (required)>' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/bin/rails:9:in `require' 
    from /var/www/lsd-core/shared/bundle/ruby/2.1.0/gems/railties-4.1.8/bin/rails:9:in `<top (required)>' 
    from /usr/local/rvm/gems/ruby-2.1.5/bin/rails:23:in `load' 
    from /usr/local/rvm/gems/ruby-2.1.5/bin/rails:23:in `<main>' 
    from /usr/local/rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `eval' 

Anfangs dachte ich, es ist eine schlechte E-Mail-Format in der Empfängerliste war, aber nach ein paar aus Jäten, würde ich den Fehler noch nach dem manuell ausgeführt Newsletter-Versand

Ich versuchte, jeden Empfänger durchzuschleifen und ihnen die E-Mail zu senden, und es funktionierte! Selbst für die schlechten E-Mails.

Gibt es eine maximale Anzahl von Empfängern beim Senden mit ActionMailer?

+0

Wissen Sie, welche Software der SMTP-Server ausführt? – lime

+0

@lime Wir verwenden SendGrid für unsere SMTP-E-Mail-Transaktionen. Danke, dass du dir die Zeit genommen hast! – nzdrml

Antwort

1

Soweit ich weiß, beschränkt ActionMailer die Anzahl der Empfänger nicht. Der Fehler, den Sie erhalten, stammt von Ihrem SMTP-Server, daher ist es wahrscheinlich, wo der Fehler liegt.

Der Fehler wurde zurückgegeben, wenn einer der mehreren RCPT TO:-Befehle unter net/smtp.rb:869 gesendet wurde. Die wahrscheinlichste Erklärung wäre eine fehlerhafte Adresse, aber Sie geben an, dass jede Adresse funktioniert, wenn Sie sie selbst senden. Sie könnten versuchen, die E-Mail an eine große Anzahl Ihrer eigenen Adressen zu senden, um zu sehen, ob derselbe Fehler auftritt.

Unabhängig davon, ob Sie die Ursache finden, sollten Sie in Betracht ziehen, jeden Newsletter separat zu versenden. Der zusätzliche Aufwand beim Senden einer E-Mail pro Empfänger ist wahrscheinlich lohnenswert, wenn Fehler wie diese vermieden werden. Viel Glück!

+0

Ich werde in das Senden von Massen-E-Mail an eine Kontrollgruppe schauen. Danke @lime – nzdrml