2015-06-25 11 views
6

Tôi có một cronjob gửi bản tin hàng ngày. Vì một số lý do, hôm nay đã xảy ra lỗi.Rails 4 Net :: SMTPSyntaxError: 501 Lỗi cú pháp đối với email hàng loạt

Tôi đã kiểm tra stack trace và nhận này

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' 

Ban đầu tôi nghĩ đó là một định dạng email xấu trong danh sách người nhận, nhưng sau khi làm cỏ một số ít ra, tôi vẫn sẽ nhận được lỗi sau bằng tay chạy người gửi bản tin.

Tôi đã cố gắng lặp qua từng người nhận và gửi cho họ từng email và nó đã hoạt động! Ngay cả đối với các email xấu.

Có số người nhận tối đa khi gửi bằng ActionMailer không?

+0

Bạn có biết máy chủ SMTP đang chạy phần mềm nào không? – lime

+0

@lime chúng tôi đang sử dụng SendGrid cho các giao dịch email SMTP của chúng tôi. Cảm ơn đã dành thời gian! – nzdrml

Trả lời

1

Theo như tôi biết, ActionMailer không áp đặt giới hạn về số lượng người nhận. Lỗi mà bạn đang nhận được bắt nguồn từ máy chủ SMTP của bạn, vì vậy rất có thể là do lỗi xảy ra.

Đã xảy ra lỗi khi gửi một trong một số lệnh RCPT TO: tại net/smtp.rb:869. Lời giải thích có khả năng nhất sẽ là địa chỉ không đúng định dạng, nhưng bạn tuyên bố rằng mỗi địa chỉ đều hoạt động khi được gửi cho riêng họ. Bạn có thể thử gửi email đến một số lượng lớn địa chỉ của chính mình và xem liệu có xuất hiện cùng một lỗi hay không.

Bất kể bạn có tìm ra nguyên nhân hay không, bạn có thể muốn xem xét việc gửi từng bản tin một cách riêng biệt. Chi phí bổ sung của việc gửi một thư cho mỗi người nhận có thể đáng giá nếu nó tránh ổn định như thế này. Chúc may mắn!

+0

Tôi sẽ xem xét gửi email hàng loạt đến nhóm kiểm soát. Cảm ơn – nzdrml

Các vấn đề liên quan