0
@@ -10,7 +10,7 @@ class NewslettersController < ApplicationController
0
if params[:address] =~ /^$|^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
0
flash[:notice] = "Test email has been sent correctly"
0
- send_test_email(@newsletter, @page,
params[:address])
0
+ send_test_email(@newsletter, @page,
(NewsletterSubscriber.find_by_email(params[:address]) || NewsletterSubscriber.new(:email => params[:address])))
0
flash[:error] = "You must specify an email address"
0
render :action => 'new' and return
0
@@ -40,29 +40,29 @@ private
0
def send_emails(newsletter, page)
0
- info = email_info(newsletter, page)
0
- newsletter.recipients.each do |address|
0
- email = NewsletterMailer.create_newsletter(info[:subject], info[:html_body], address, info[:from])
0
+ newsletter.active_subscribers.each do |subscriber|
0
+ info = email_info(newsletter, page, subscriber)
0
+ email = NewsletterMailer.create_newsletter(info[:subject], info[:html_body], subscriber.address, info[:from])
0
NewsletterEmail.create({
0
:mail => email.encoded,
0
+ :to =>
subscriber.address,
0
page.update_attribute(:sent_as_newsletter_email_at, Time.now)
0
- def send_test_email(newsletter, page, address)
0
- info = email_info(newsletter, page)
0
- email = NewsletterMailer.create_newsletter(info[:subject], info[:html_body], address, info[:from])
0
+ def send_test_email(newsletter, page, subscriber)
0
+ info = email_info(newsletter, page, subscriber)
0
+ email = NewsletterMailer.create_newsletter(info[:subject], info[:html_body], subscriber.address, info[:from])
0
NewsletterMailer.deliver(email)
0
- def email_info(newsletter, page
)
0
+ def email_info(newsletter, page
, subscriber)
0
:subject => "[#{newsletter.config["subject_prefix"]}] #{page.title}",
0
- :html_body => page.re
nder,
0
+ :html_body => page.re
spond_to?(:render_with_subscriber) ? page.render_with_subscriber(subscriber) : page.render,
0
:from => newsletter.config["from"]
Comments
No one has commented yet.