about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/comments_controller.rb4
-rw-r--r--app/mailers/application_mailer.rb2
-rw-r--r--app/mailers/comment_mailer.rb7
-rw-r--r--app/views/comment_mailer/new_comment_email.html.haml22
-rw-r--r--app/views/comment_mailer/new_comment_email.text.erb20
-rw-r--r--config/deploy.rb2
-rw-r--r--config/environments/development.rb1
-rw-r--r--config/environments/production.rb4
-rw-r--r--config/mail.yml8
-rw-r--r--test/mailers/comment_mailer_test.rb7
-rw-r--r--test/mailers/previews/comment_mailer_preview.rb4
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 @@
1class ApplicationMailer < ActionMailer::Base 1class ApplicationMailer < ActionMailer::Base
2 default from: 'from@example.com' 2 default from: 'no-reply@fourisland.com'
3 layout 'mailer' 3 layout 'mailer'
4end 4end
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 @@
1class 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
7end
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 @@
1Four Island
2===========
3
4A 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 %>
10Here is the comment:
11
12---
13
14<%= @comment.body %>
15
16---
17
18Posted: <%= @comment.published_at.strftime("%B #{@comment.published_at.day.ordinalize}, %Y at %-I:%M:%S%P") %>
19
20See 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 []
24append :linked_files, "config/database.yml", "config/secrets.yml", "config/lingo.yml", "config/akismet.yml" 24append :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 []
27append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "public/uploads" 27append :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 @@
1production:
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 @@
1require "test_helper"
2
3class CommentMailerTest < ActionMailer::TestCase
4 # test "the truth" do
5 # assert true
6 # end
7end
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
2class CommentMailerPreview < ActionMailer::Preview
3
4end