wip
This commit is contained in:
parent
f4bfa22768
commit
85e51a6dd7
5 changed files with 90 additions and 31 deletions
3
Gemfile
3
Gemfile
|
|
@ -77,6 +77,9 @@ gem 'SystemTimer', '1.2.1', :platforms => :ruby_18
|
|||
gem 'hoptoad_notifier'
|
||||
gem 'newrelic_rpm', :require => false
|
||||
|
||||
#mail
|
||||
gem 'messagebus_ruby_api', :git => 'https://github.com/messagebus/messagebus_ruby_api.git'
|
||||
|
||||
# tags
|
||||
|
||||
gem 'acts-as-taggable-on', :git => 'git://github.com/diaspora/acts-as-taggable-on.git'
|
||||
|
|
|
|||
|
|
@ -56,6 +56,12 @@ GIT
|
|||
addressable (>= 2.1.1)
|
||||
eventmachine (>= 0.12.9)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/messagebus/messagebus_ruby_api.git
|
||||
revision: 02b3d04730f3a72f636c0b4ddbbcd660bba6a75e
|
||||
specs:
|
||||
messagebus_ruby_api (0.4.8)
|
||||
|
||||
GEM
|
||||
remote: http://rubygems.org/
|
||||
specs:
|
||||
|
|
@ -505,6 +511,7 @@ DEPENDENCIES
|
|||
json (= 1.4.6)
|
||||
jwt (= 0.1.3)
|
||||
linecache (= 0.43)
|
||||
messagebus_ruby_api!
|
||||
mini_magick (= 3.2)
|
||||
mobile-fu
|
||||
mock_redis
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
Diaspora::Application.configure do
|
||||
# Settings specified here will take precedence over those in config/environment.rb
|
||||
|
||||
|
|
@ -17,6 +16,7 @@ Diaspora::Application.configure do
|
|||
config.consider_all_requests_local = true
|
||||
config.action_controller.perform_caching = false
|
||||
|
||||
|
||||
# Don't care if the mailer can't send
|
||||
config.action_mailer.raise_delivery_errors = false
|
||||
config.active_support.deprecation = :log
|
||||
|
|
|
|||
|
|
@ -2,36 +2,39 @@
|
|||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
require File.join(Rails.root, 'lib/messagebus/mailer')
|
||||
Diaspora::Application.configure do
|
||||
config.action_mailer.default_url_options = {:host => AppConfig[:pod_uri].authority }
|
||||
unless Rails.env == 'test' || AppConfig[:mailer_on] != true
|
||||
if AppConfig[:mailer_method] == "sendmail"
|
||||
config.action_mailer.delivery_method = :sendmail
|
||||
config.action_mailer.sendmail_settings = {
|
||||
:location => AppConfig[:sendmail_location]
|
||||
}
|
||||
else
|
||||
config.action_mailer.delivery_method = :smtp
|
||||
if AppConfig[:smtp_authentication] == "none"
|
||||
config.action_mailer.smtp_settings = {
|
||||
:address => AppConfig[:smtp_address],
|
||||
:port => AppConfig[:smtp_port],
|
||||
:domain => AppConfig[:smtp_domain],
|
||||
:enable_starttls_auto => false,
|
||||
:openssl_verify_mode => AppConfig[:smtp_openssl_verify_mode]
|
||||
}
|
||||
else
|
||||
config.action_mailer.smtp_settings = {
|
||||
:address => AppConfig[:smtp_address],
|
||||
:port => AppConfig[:smtp_port],
|
||||
:domain => AppConfig[:smtp_domain],
|
||||
:authentication => AppConfig[:smtp_authentication],
|
||||
:user_name => AppConfig[:smtp_username],
|
||||
:password => AppConfig[:smtp_password],
|
||||
:enable_starttls_auto => AppConfig[:smtp_starttls_auto],
|
||||
:openssl_verify_mode => AppConfig[:smtp_openssl_verify_mode]
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
# unless Rails.env == 'test' || AppConfig[:mailer_on] != true
|
||||
# if AppConfig[:mailer_method] == "sendmail"
|
||||
# config.action_mailer.delivery_method = :sendmail
|
||||
# config.action_mailer.sendmail_settings = {
|
||||
# :location => AppConfig[:sendmail_location]
|
||||
# }
|
||||
# else
|
||||
# config.action_mailer.delivery_method = :smtp
|
||||
# if AppConfig[:smtp_authentication] == "none"
|
||||
# config.action_mailer.smtp_settings = {
|
||||
# :address => AppConfig[:smtp_address],
|
||||
# :port => AppConfig[:smtp_port],
|
||||
# :domain => AppConfig[:smtp_domain],
|
||||
# :enable_starttls_auto => false,
|
||||
# :openssl_verify_mode => AppConfig[:smtp_openssl_verify_mode]
|
||||
# }
|
||||
# else
|
||||
# config.action_mailer.smtp_settings = {
|
||||
# :address => AppConfig[:smtp_address],
|
||||
# :port => AppConfig[:smtp_port],
|
||||
# :domain => AppConfig[:smtp_domain],
|
||||
# :authentication => AppConfig[:smtp_authentication],
|
||||
# :user_name => AppConfig[:smtp_username],
|
||||
# :password => AppConfig[:smtp_password],
|
||||
# :enable_starttls_auto => AppConfig[:smtp_starttls_auto],
|
||||
# :openssl_verify_mode => AppConfig[:smtp_openssl_verify_mode]
|
||||
# }
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
|
||||
config.action_mailer.delivery_method = Messagebus::Mailer.new('986071AEF15FBE380E75A9805C77E733')
|
||||
end
|
||||
|
|
|
|||
46
lib/messagebus/mailer.rb
Normal file
46
lib/messagebus/mailer.rb
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
module Messagebus
|
||||
class Mailer
|
||||
|
||||
def initialize(api_key)
|
||||
@client = MessagebusRubyApi::Client.new(api_key)
|
||||
end
|
||||
|
||||
attr_accessor :settings
|
||||
|
||||
def new(*settings)
|
||||
self
|
||||
end
|
||||
|
||||
def deliver!(message)
|
||||
deliver(message)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def deliver(message)
|
||||
puts "dslkfjasd;lfkjasd;lkfjasd;lkfjasd;lkfjasd;lfjkasd;lkfjasd;lfkjasd;lfkjasd;lkfjas;ldkfj;alsdkjf;lasdjkf;lasdkjf;alsdjkfls"
|
||||
@client.common_info = {:fromEmail => message.from.first}
|
||||
message.to.each do |addressee|
|
||||
m = {:toEmail => addressee, :subject => message.subject}
|
||||
|
||||
if message.multipart?
|
||||
m[:plaintextBody] = message.text_part.body.to_s if message.text_part
|
||||
m[:htmlBody] = message.html_part.body.to_s if message.html_part
|
||||
else
|
||||
m[:plaintextBody] = message.body.to_s
|
||||
end
|
||||
|
||||
@client.add_message(m)
|
||||
end
|
||||
|
||||
status = @client.flush
|
||||
|
||||
if status[:failureCount] && status[:failureCount] > 0
|
||||
raise "Messagebus failure. failureCount=#{failureCount}, message=#{message.inspect}"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
Reference in a new issue