diff options
| -rw-r--r-- | app/controllers/comments_controller.rb | 4 | ||||
| -rw-r--r-- | app/mailers/application_mailer.rb | 2 | ||||
| -rw-r--r-- | app/mailers/comment_mailer.rb | 7 | ||||
| -rw-r--r-- | app/views/comment_mailer/new_comment_email.html.haml | 22 | ||||
| -rw-r--r-- | app/views/comment_mailer/new_comment_email.text.erb | 20 | ||||
| -rw-r--r-- | config/deploy.rb | 2 | ||||
| -rw-r--r-- | config/environments/development.rb | 1 | ||||
| -rw-r--r-- | config/environments/production.rb | 4 | ||||
| -rw-r--r-- | config/mail.yml | 8 | ||||
| -rw-r--r-- | test/mailers/comment_mailer_test.rb | 7 | ||||
| -rw-r--r-- | test/mailers/previews/comment_mailer_preview.rb | 4 | 
11 files changed, 78 insertions, 3 deletions
| diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 60c8f6a..c66365b 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb | |||
| @@ -43,6 +43,10 @@ class CommentsController < ApplicationController | |||
| 43 | 43 | ||
| 44 | if @comment.save | 44 | if @comment.save | 
| 45 | flash.notice = flash_message | 45 | flash.notice = flash_message | 
| 46 | |||
| 47 | if @comment.status == :published | ||
| 48 | CommentMailer.with(comment: @comment).new_comment_email.deliver_later | ||
| 49 | end | ||
| 46 | else | 50 | else | 
| 47 | flash.alert = "Error posting comment." | 51 | flash.alert = "Error posting comment." | 
| 48 | end | 52 | end | 
| diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 286b223..4862159 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | class ApplicationMailer < ActionMailer::Base | 1 | class ApplicationMailer < ActionMailer::Base | 
| 2 | default from: 'from@example.com' | 2 | default from: 'no-reply@fourisland.com' | 
| 3 | layout 'mailer' | 3 | layout 'mailer' | 
| 4 | end | 4 | end | 
| diff --git a/app/mailers/comment_mailer.rb b/app/mailers/comment_mailer.rb new file mode 100644 index 0000000..363875a --- /dev/null +++ b/app/mailers/comment_mailer.rb | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | class CommentMailer < ApplicationMailer | ||
| 2 | def new_comment_email | ||
| 3 | @comment = params[:comment] | ||
| 4 | @admin = User.first # this is weird | ||
| 5 | mail(to: @admin.email, subject: "[Four Island] Comment on #{@comment.blog.title}") | ||
| 6 | end | ||
| 7 | end | ||
| diff --git a/app/views/comment_mailer/new_comment_email.html.haml b/app/views/comment_mailer/new_comment_email.html.haml new file mode 100644 index 0000000..bd9e91c --- /dev/null +++ b/app/views/comment_mailer/new_comment_email.html.haml | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | %h1 Four Island | ||
| 2 | %p | ||
| 3 | A comment has been posted on | ||
| 4 | = link_to @comment.blog.title, @comment.blog | ||
| 5 | by the following user: | ||
| 6 | %ul | ||
| 7 | %li | ||
| 8 | Name: | ||
| 9 | = @comment.username | ||
| 10 | %li | ||
| 11 | Email: | ||
| 12 | = @comment.email | ||
| 13 | - unless @comment.website.empty? | ||
| 14 | %li | ||
| 15 | Website: | ||
| 16 | = @comment.website | ||
| 17 | %p Here is the comment: | ||
| 18 | %blockquote= @comment.body | ||
| 19 | %p | ||
| 20 | Posted: | ||
| 21 | = @comment.published_at.strftime("%B #{@comment.published_at.day.ordinalize}, %Y at %-I:%M:%S%P") | ||
| 22 | %p= link_to "See the comment on the web", blog_url(@comment.blog, anchor: "comment-#{@comment.id}") | ||
| diff --git a/app/views/comment_mailer/new_comment_email.text.erb b/app/views/comment_mailer/new_comment_email.text.erb new file mode 100644 index 0000000..e37046f --- /dev/null +++ b/app/views/comment_mailer/new_comment_email.text.erb | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | Four Island | ||
| 2 | =========== | ||
| 3 | |||
| 4 | A comment has been posted on <%= @comment.blog.title %> by the following user: | ||
| 5 | |||
| 6 | * Name: <%= @comment.username %> | ||
| 7 | * Email: <%= @comment.email %> | ||
| 8 | <% unless @comment.website.empty? %>* Website: <%= @comment.website %> | ||
| 9 | <% end %> | ||
| 10 | Here is the comment: | ||
| 11 | |||
| 12 | --- | ||
| 13 | |||
| 14 | <%= @comment.body %> | ||
| 15 | |||
| 16 | --- | ||
| 17 | |||
| 18 | Posted: <%= @comment.published_at.strftime("%B #{@comment.published_at.day.ordinalize}, %Y at %-I:%M:%S%P") %> | ||
| 19 | |||
| 20 | See the comment on the web: <%= blog_url(@comment.blog, anchor: "comment-#{@comment.id}") %> | ||
| diff --git a/config/deploy.rb b/config/deploy.rb index cbac23c..05b137d 100644 --- a/config/deploy.rb +++ b/config/deploy.rb | |||
| @@ -21,7 +21,7 @@ set :deploy_to, "/srv/www/thoughts" | |||
| 21 | # set :pty, true | 21 | # set :pty, true | 
| 22 | 22 | ||
| 23 | # Default value for :linked_files is [] | 23 | # Default value for :linked_files is [] | 
| 24 | append :linked_files, "config/database.yml", "config/secrets.yml", "config/lingo.yml", "config/akismet.yml" | 24 | append :linked_files, "config/database.yml", "config/secrets.yml", "config/lingo.yml", "config/akismet.yml", "config/mail.yml" | 
| 25 | 25 | ||
| 26 | # Default value for linked_dirs is [] | 26 | # Default value for linked_dirs is [] | 
| 27 | append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "public/uploads" | 27 | append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "public/uploads" | 
| diff --git a/config/environments/development.rb b/config/environments/development.rb index 8500f45..e683ebb 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb | |||
| @@ -37,6 +37,7 @@ Rails.application.configure do | |||
| 37 | config.active_storage.service = :local | 37 | config.active_storage.service = :local | 
| 38 | 38 | ||
| 39 | # Don't care if the mailer can't send. | 39 | # Don't care if the mailer can't send. | 
| 40 | config.action_mailer.default_url_options = { host: 'localhost:3000' } | ||
| 40 | config.action_mailer.raise_delivery_errors = false | 41 | config.action_mailer.raise_delivery_errors = false | 
| 41 | 42 | ||
| 42 | config.action_mailer.perform_caching = false | 43 | config.action_mailer.perform_caching = false | 
| diff --git a/config/environments/production.rb b/config/environments/production.rb index 182b74e..e814a66 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb | |||
| @@ -66,7 +66,9 @@ Rails.application.configure do | |||
| 66 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. | 66 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. | 
| 67 | # config.action_mailer.raise_delivery_errors = false | 67 | # config.action_mailer.raise_delivery_errors = false | 
| 68 | 68 | ||
| 69 | config.action_mailer.default_url_options = { host: 'feffernoo.se' } | 69 | config.action_mailer.default_url_options = { host: 'www.fourisland.com' } | 
| 70 | config.action_mailer.delivery_method = :smtp | ||
| 71 | config.action_mailer.smtp_settings = Rails.application.config_for(:mail)[:smtp_settings] | ||
| 70 | 72 | ||
| 71 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to | 73 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to | 
| 72 | # the I18n.default_locale when a translation cannot be found). | 74 | # the I18n.default_locale when a translation cannot be found). | 
| diff --git a/config/mail.yml b/config/mail.yml new file mode 100644 index 0000000..3c88234 --- /dev/null +++ b/config/mail.yml | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | production: | ||
| 2 | smtp_settings: | ||
| 3 | address: "" | ||
| 4 | port: 25 | ||
| 5 | user_name: "" | ||
| 6 | password: "" | ||
| 7 | authentication: "" | ||
| 8 | openssl_verify_mode: "" | ||
| diff --git a/test/mailers/comment_mailer_test.rb b/test/mailers/comment_mailer_test.rb new file mode 100644 index 0000000..996d230 --- /dev/null +++ b/test/mailers/comment_mailer_test.rb | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | require "test_helper" | ||
| 2 | |||
| 3 | class CommentMailerTest < ActionMailer::TestCase | ||
| 4 | # test "the truth" do | ||
| 5 | # assert true | ||
| 6 | # end | ||
| 7 | end | ||
| diff --git a/test/mailers/previews/comment_mailer_preview.rb b/test/mailers/previews/comment_mailer_preview.rb new file mode 100644 index 0000000..20fc4e6 --- /dev/null +++ b/test/mailers/previews/comment_mailer_preview.rb | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | # Preview all emails at http://localhost:3000/rails/mailers/comment_mailer | ||
| 2 | class CommentMailerPreview < ActionMailer::Preview | ||
| 3 | |||
| 4 | end | ||
