Merge branch 'rake_task_for_google_email_schema_verfication' into 'master'
Rake task for google email schema verfication #1607 See merge request !1300
This commit is contained in:
commit
e6c5a8b161
|
@ -26,6 +26,14 @@ class Notify < ActionMailer::Base
|
|||
delay_for(2.seconds)
|
||||
end
|
||||
|
||||
def test_email(recepient_email, subject, body)
|
||||
mail(to: recepient_email,
|
||||
subject: subject,
|
||||
body: body.html_safe,
|
||||
content_type: 'text/html'
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# The default email address to send emails from
|
||||
|
|
|
@ -9,3 +9,20 @@ If correctly setup, emails that require an action will be marked in Gmail.
|
|||
To get this functioning, you need to be registered with Google.
|
||||
[See how to register with google in this document.](https://developers.google.com/gmail/markup/registering-with-google)
|
||||
|
||||
To aid the registering with google, GitLab offers a rake task that will send an email to google whitelisting email address from your GitLab server.
|
||||
|
||||
To check what would be sent to the google email address, run the rake task:
|
||||
|
||||
```bash
|
||||
bundle exec rake gitlab:mail_google_schema_whitelisting RAILS_ENV=production
|
||||
```
|
||||
|
||||
**This will not send the email but give you the output of how the mail will look.**
|
||||
|
||||
Copy the output of the rake task to [google email markup tester](https://www.google.com/webmasters/markup-tester/u/0/) and press "Validate".
|
||||
|
||||
If you receive "No errors detected" message from the tester you can send the email using:
|
||||
|
||||
```bash
|
||||
bundle exec rake gitlab:mail_google_schema_whitelisting RAILS_ENV=production SEND=true
|
||||
``
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
require "#{Rails.root}/app/helpers/emails_helper"
|
||||
require 'action_view/helpers'
|
||||
extend ActionView::Helpers
|
||||
|
||||
include ActionView::Context
|
||||
include EmailsHelper
|
||||
|
||||
namespace :gitlab do
|
||||
desc "Email google whitelisting email with example email for actions in inbox"
|
||||
task mail_google_schema_whitelisting: :environment do
|
||||
subject = "Rails | Implemented feature"
|
||||
url = "#{Gitlab.config.gitlab.url}/base/rails-project/issues/#{rand(1..100)}#note_#{rand(10..1000)}"
|
||||
schema = email_action(url)
|
||||
body = email_template(schema, url)
|
||||
mail = Notify.test_email("schema.whitelisting+sample@gmail.com", subject, body.html_safe)
|
||||
if send_now
|
||||
mail.deliver
|
||||
else
|
||||
puts "WOULD SEND:"
|
||||
end
|
||||
puts mail
|
||||
end
|
||||
|
||||
def email_template(schema, url)
|
||||
"<html lang='en'>
|
||||
<head>
|
||||
<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
|
||||
<title>
|
||||
GitLab
|
||||
</title>
|
||||
</meta>
|
||||
</head>
|
||||
<style>
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
p.details {
|
||||
font-style:italic;
|
||||
color:#777
|
||||
}
|
||||
.footer p {
|
||||
font-size:small;
|
||||
color:#777
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<div class='content'>
|
||||
<div>
|
||||
<p>I like it :+1: </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='footer' style='margin-top: 10px;'>
|
||||
<p>
|
||||
<br>
|
||||
You're receiving this notification because you are a member of the Base / Rails Project project team.
|
||||
<a href=\"#{url}\">View it on GitLab</a>
|
||||
#{schema}
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>"
|
||||
end
|
||||
|
||||
def send_now
|
||||
if ENV['SEND'] == "true"
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,27 @@
|
|||
require 'spec_helper'
|
||||
require 'rake'
|
||||
|
||||
describe 'gitlab:mail_google_schema_whitelisting rake task' do
|
||||
before :all do
|
||||
Rake.application.rake_require "tasks/gitlab/task_helpers"
|
||||
Rake.application.rake_require "tasks/gitlab/mail_google_schema_whitelisting"
|
||||
# empty task as env is already loaded
|
||||
Rake::Task.define_task :environment
|
||||
end
|
||||
|
||||
describe 'call' do
|
||||
before do
|
||||
# avoid writing task output to spec progress
|
||||
$stdout.stub :write
|
||||
end
|
||||
|
||||
let :run_rake_task do
|
||||
Rake::Task["gitlab:mail_google_schema_whitelisting"].reenable
|
||||
Rake.application.invoke_task "gitlab:mail_google_schema_whitelisting"
|
||||
end
|
||||
|
||||
it 'should run the task without errors' do
|
||||
expect { run_rake_task }.to_not raise_error
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue