Я отправляю электронные письма следующим способом:
class Communicate < ActionMailer::Base
def message(sub,msg,people)
subject sub
bcc people
from 'my_email.s@gmail.com'
sent_on Time.now
body :greeting => msg
end
end
Скрытая копия содержит 4 или 5 адресов электронной почты.
Во время тестирования я заметил две вещи:
- Что, если даже одно из писем не является действительным (например,
fake_email_no_domain
), оно не отправляет письма налюбой из получателей - , если в списке скрытой копии указан неверный адрес электронной почты (например,
nonexistent@gmail.com
), он все равно отправляет электронные письма другим получателям, но все равно выдает ошибку в журналы.
В обоих случаях выдается ошибка:
Redirected to http://localhost:3000/
Completed in 2601ms (DB: 1) | 302 Found [http://localhost/notifications]
[2010-08-04 00:49:00] ERROR Errno::ECONNRESET: Connection reset by peer
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `eof?'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `run'
/usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
Вопросы:
- Есть ли способ, которым яможет поймать эту ошибку?Я показываю пользователю
flash[:notice]
, и я хотел бы отметить, что случилось что-то плохое - Если в моем списке BCC есть 5 электронных писем, и на самом деле отправлено только 4 электронных письма, потому что 5-е было несуществующим, тогда, в конце концов,готово, могу ли я узнать количество отправленных электронных писем?Я хотел бы показать это число в моем
flash[:notice]
.Я могу получить этот номер, фактически вызывая метод доставки в итерации, а не отправляя его как массовую, но все же я не хотел бы увеличивать счет, если одно письмо не отправлено.