ActionMailer - лимит на количество получателей? - PullRequest
6 голосов
/ 04 ноября 2011

Я настроил Capistrano для отправки электронных писем после развертывания моего приложения RoR (2.3.8).У меня есть файл config/cap_mailer.rb, который в основном выглядит следующим образом:

ActionMailer::Base.smtp_settings = {
  :address => my,
  :port => exchange,
  :domain => server,
  :authentication => settings,
  :user_name => are,
  :password => here
}

class CapMailer < ActionMailer::Base
  def deploy_notification(cap_vars)
    recipients  cap_vars[:notify_emails]
    from        'deploy@my.org'
    subject     "New app!"
    body        "Deployed application...blah blah blah"
  end
end

Затем в моем файле deploy.rb есть следующее:

require 'config/cap_mailer.rb'
...
desc "Email recipients of deployment"
task :notify do
  puts "  * Sending notification email"
  set :notify_emails, ["test1@my.org", "test2@my.org", etc.]
  CapMailer.deliver_deploy_notification(self)
end

Теперь все это работает нормально иДэнди ...... пока я не поместил более 7 адресов электронной почты в массив : notify_emails .До 7 работает нормально, но когда я ставлю 8 или больше (все действительные адреса), электронная почта немного облажается (по крайней мере, до первых 7).Глядя на заголовок письма, он показывает, что он обрезает 8-й (и 9-й, 10-й, ...) адрес из «To:» и помещает его в тело сообщения.

HEADER:индекс нити: AcyaZxlga08L9p35QYKJ22aiGG2zeA ==Класс содержимого: urn: классы содержимого: сообщениеВажность: нормальнаяПриоритет: нормальныйX-MimeOLE: продюсер ...Получено: с exchange.my.org ([ip address]) от ...;Чт, 3 ноября 2011 14:28:08 -0600Дата: четверг, 3 ноября 2011 г. 14:28:08 -0600От: deploy@my.orgTo: test1@my.org,test2@my.org,test3@my.org,test4@my.org,test5@my.org,test6@my.org,test7@my.orgЗАГОЛОВОК:ТЕЛО:test8@my.orgMessage-Id:<4eb2f95816341_135ff800c21ac130@my_box.local.tmail>Тема: Новое приложение!Mime-версия: 1.0Тип контента: текстовый / простой;кодировка = UTF-8Return-Path: deploy@my.orgX-OriginalArrivalTime: 03 ноября 2011 20: 28: 08.0494 (UTC)FILETIME = [19601CE0: 01CC9A67]Развернутое приложение ... бла-бла-блаТЕЛО:

Кроме того, тема не появляется в электронном письме, хотя «текст ошибки» в теле сообщения показывает правильную тему.

У кого-нибудь есть идеи?почему это происходит?Что такого в том, что 8 или более получателей ломают его?Я гуглил и не могу найти ничего о том, что у ActionMailer есть ограничение на количество получателей (даже если оно было, это небольшое ограничение).Я что-то упускаю?Любая помощь приветствуется!Мне действительно нужно иметь возможность отправлять 8 или более получателям.

ОБНОВЛЕНИЕ: Установка получателей напрямую с массивом из 8 или более адресов все еще ломает вещи,так что это явно похоже на проблему с ActionMailer, а не с Capistrano.

recipients ["test1@my.org", "test2@my.org", "test3@my.org", "test4@my.org", 
  "test5@my.org", "test6@my.org", "test7@my.org", "test8@my.org", "test9@my.org"]

Ответы [ 3 ]

1 голос
/ 04 ноября 2011

Седьмой адрес электронной почты не сопровождается запятой, что может быть проблемой.Попробуйте передать строку в recipients, например cap_vars[:notify_emails].join(','), без перевода строки.

0 голосов
/ 23 ноября 2011

При всем уважении некоторые простые вещи, которые вы могли бы упустить при отладке сложных ошибок:

  1. Если его почтовый сервер связан с его установкой на другом рабочем сервере? Если вы не уверены, что почтовый сервер пытается найти другую ошибку, это может не помочь.
  2. Попробуйте обновить rails / ruby? Возможно, это ошибка в коде
0 голосов
/ 23 ноября 2011

Попробуйте передать строку получателям без запятых (были сообщения о запятых как проблема), например:

cap_vars[:notify_emails].join(' ')
...