2015-06-25 2 views
6

У меня есть cronjob, который ежедневно отправляет информационные бюллетени. По некоторым причинам сегодня была ошибка.Rails 4 Net :: SMTPSyntaxError: 501 Ошибка синтаксиса для массовой почты

Я проверил трассировки стека и получил это

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' 

Первоначально я думал, что это был плохой формат адреса электронной почты в списке получателей, но после того, как прополка несколько, я бы до сих пор получаю ошибку после того, как вручную, запустив рассылка новостей.

Я пробовал перебирать каждого получателя и отправлять им по электронной почте, и это сработало! Даже для плохих писем.

Максимальное количество получателей при отправке с помощью ActionMailer?

+0

Вам известно, какое программное обеспечение работает на SMTP-сервере? – lime

+0

@lime мы используем SendGrid для наших транзакций электронной почты SMTP. Спасибо, что нашли время! – nzdrml

ответ

1

Насколько я знаю, ActionMailer не накладывает ограничений на количество получателей. Ошибка, которую вы получаете, исходит от вашего SMTP-сервера, так что, скорее всего, там, где ошибка.

Ошибка отправлена ​​при отправке одной из нескольких команд RCPT TO: по адресу net/smtp.rb:869. Наиболее вероятным объяснением будет неправильный адрес, но вы заявляете, что каждый адрес работал при отправке самостоятельно. Вы можете попробовать отправить письмо на большое количество своих собственных адресов и посмотреть, появляется ли такая же ошибка.

Независимо от того, находите ли вы причину, вы можете рассмотреть возможность отправки каждого информационного бюллетеня отдельно. Добавленные накладные расходы на отправку одной почты на каждого получателя, вероятно, будут стоить того, если она избежит таких сбоев. Удачи!

+0

Я посмотрю на отправку массовой почты в контрольную группу. Спасибо @lime – nzdrml

Смежные вопросы