public
Description: Support for multiple SMTP servers in ActionMailer
Clone URL: git://github.com/nakajima/many-mailers.git
restructured many_mailers


git-svn-id: http://wush.net/svn/animoto/plugins/many_mailers@4024 
6c340329-a920-0410-8062-e7f800300859
patnakajima (author)
Wed Mar 05 10:44:51 -0800 2008
commit  c7d1db8511540bec2d6cd04662e4de38b0d71663
tree    4ef06000d857207d450a6fccea64d34bbe375d09
parent  c4ee3052433d96cb6cd11b8d2bdc5f7c37c3f1ad
...
1
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
...
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
0
@@ -1 +1,40 @@
0
-require 'many_mailers/action_mailer/base'
0
\ No newline at end of file
0
+module Animoto
0
+ module ManyMailers
0
+ def self.included(base)
0
+ base.extend(ClassMethods)
0
+ base.class_eval do
0
+ @@mail_servers = { }
0
+ @@default_server = :default
0
+ cattr_accessor :mail_servers
0
+ cattr_reader :default_server
0
+ load_settings!
0
+ end
0
+ end
0
+
0
+ module ClassMethods
0
+ def with_settings(name, &block)
0
+ init_settings = self.smtp_settings
0
+ use_server(name)
0
+ yield self
0
+ self.smtp_settings = init_settings
0
+ end
0
+
0
+ def use_server(name)
0
+ @@default_server = name
0
+ self.smtp_settings = mail_servers[@@default_server]
0
+ end
0
+ alias_method :default_server=, :use_server
0
+
0
+ def load_settings!(file_path = "#{RAILS_ROOT}/config/mail_servers.yml")
0
+ begin
0
+ YAML.load_file(file_path).each { |key, value| mail_servers[key.to_sym] = value.to_options! }
0
+ self.smtp_settings = mail_servers[default_server]
0
+ rescue
0
+ logger.warn "=> \"#{file_path}\" not found! Using default SMTP settings (if any)."
0
+ end
0
+ end
0
+ end
0
+ end
0
+end
0
+
0
+ActionMailer::Base.send :include, Animoto::ManyMailers
0
\ No newline at end of file

Comments

    No one has commented yet.