2015-06-25 7 views
6

Ho un cronjob che invia newsletter ogni giorno. Per qualche ragione, c'è stato un errore oggi.Rails 4 Net :: SMTPSyntaxError: 501 Errore di sintassi per e-mail in blocco

ho controllato la traccia dello stack e ottenuto questo

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' 

Inizialmente ho pensato che fosse un formato email cattivo nella lista dei destinatari, ma dopo il diserbo alcuni fuori, sarei ancora ottenere l'errore dopo l'esecuzione manualmente il newsletter mailer.

Ho provato a passare in rassegna ogni destinatario e inviare a ciascuno l'e-mail, e ha funzionato! Anche per le e-mail cattive.

Esiste un numero massimo di destinatari quando si invia con ActionMailer?

+0

Ti capita di sapere quale software è in esecuzione sul server SMTP? – lime

+0

@lime stiamo usando SendGrid per le nostre transazioni email SMTP. grazie per aver dedicato del tempo! – nzdrml

risposta

1

Per quanto ne so, ActionMailer non impone limiti al numero di destinatari. L'errore che si ottiene proviene dal server SMTP, quindi è molto probabile che si trovi il problema.

L'errore è stato restituito quando si invia uno dei vari comandi RCPT TO: a net/smtp.rb:869. La spiegazione più probabile sarebbe un indirizzo malformato, ma dichiari che ogni indirizzo ha funzionato quando inviato da solo. Potresti provare a inviare l'email a un numero elevato di tuoi indirizzi e vedere se appare lo stesso errore.

Indipendentemente dal fatto che si trovi la causa, è consigliabile prendere in considerazione l'invio di ciascuna newsletter separatamente. Il sovraccarico aggiunto di inviare una mail per destinatario è probabile che valga la pena se evita glitch come questo. In bocca al lupo!

+0

Analizzerò l'invio di e-mail di massa a un gruppo di controllo. Grazie @lime – nzdrml

Problemi correlati