VvanGemert-ar_mailer 2.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/History.txt ADDED
@@ -0,0 +1,158 @@
1
+ = 2.1.8
2
+
3
+ * Bugs fixed
4
+ * Fix BCC addresses being visible to all recipients (laserlemon)
5
+
6
+ = 2.1.7
7
+
8
+ * Miscellaneous Updates
9
+ * Added adzap-ar_mailer file to end the need for the config.gem :lib option
10
+
11
+ * Bugs fixed
12
+ * Fix from address being set as address header object.
13
+
14
+ = 2.1.6
15
+
16
+ * Miscellaneous Updates
17
+ * Use return-path as from address if set, as per default ActionMailer::Base SMTP delivery (Dustin Tinney)
18
+ * Always wait full delay between deliveries (cyu)
19
+
20
+ * Bugs fixed
21
+ * Non-zero return code returned in init.d script (hennk)
22
+ * Use updated Timeout error class (hennk)
23
+
24
+ = 2.1.5
25
+
26
+ * Bugs fixed
27
+ * Load ar_mailer after environment to fix issue with lazy loading of ActionMailer in Rails 2.3
28
+
29
+ = 2.1.4
30
+
31
+ * Bugs fixed
32
+ * Explicitly require ar_mailer in ar_sendmail because its not getting loaded by the Rails environment for some reason
33
+
34
+ = 2.1.3
35
+
36
+ * Tests now pass on gem install
37
+ * Removed deprecated ActionMailer::ARMailer class
38
+ * Bugs fixed
39
+ * Fixed issue with pre-loading ActionMailer. No use ActionMailer::Base.email_class directly rather than store in ARSendmail instance var so no need to pre-load ActionMailer.
40
+
41
+ = 2.1.2
42
+
43
+ * Bugs fixed
44
+ * Require ar_mailer in ar_sendmail since the change to remove TableName and use email_class
45
+
46
+ = 2.1.1
47
+
48
+ * Force gem rebuild
49
+
50
+ = 2.1.0
51
+
52
+ * Switched to using a Rails generator for migration and model files. The ar_sendmail options have been removed.
53
+
54
+ = 2.0.2
55
+
56
+ * Removed TableName option from ar_sendmail options as its redundant. The Rails environment gets loaded so the settings for email class also get loaded
57
+ * Bugs fixed
58
+ * Email class reloading issue in development mode causing AR email class defaults to be lost when cached
59
+
60
+ = 2.0.1
61
+
62
+ * Added option to use smtp setting of :tls => false to disable TLS auto start in Ruby 1.8.7+
63
+ * Removed some cruft which can be handled by ActiveSupport
64
+
65
+ = 2.0.0
66
+
67
+ * Removed need to use ARMailer subclass. Just set the delivery method and you are ready to go. Backwards compatible with a deprecation notice if you subclass old ARMailer class.
68
+ * Only include SMTP TLS patch if Ruby version < 1.8.7 as it has an alternative. Changes based on Calvin Yu's [cyu] fork.
69
+ * Renamed default migration name to the modern Rails default
70
+ * Only authenticate if emails waiting to be sent
71
+ * Added --version switch to ar_sendmail binary
72
+ * Created a lighthouse account for this project (adzap fork only). See README.
73
+
74
+ = 1.4.4
75
+
76
+ * Exit init.d script with message if no mailers defined.
77
+
78
+ = 1.4.3
79
+
80
+ * Bugs fixed
81
+ * Replaced mistaken call to log when removing pid file artifact for
82
+ non-running daemon
83
+
84
+ = 1.4.2
85
+
86
+ * New Features
87
+ * Added Ruby based linux init.d script for handling daemon startup using yaml
88
+ config file. See files share/linux/ar_sendmail and ar_sendmail.conf
89
+ * Bugs fixed
90
+ * Proper handling for relative and absolute paths for the pid file
91
+ * Removed hoe dependency since we need the explicit gemspec file for github and
92
+ not deploying to RubyForge its not as useful.
93
+ * Moved old BSD rc.d script to share/bsd folder
94
+ * Updated README with github gem install, docs and init script info
95
+
96
+ = 1.4.1
97
+
98
+ * Bugs fixed
99
+ * Daemon failed on startup fixed with expanding full path of pid file
100
+
101
+ = 1.4.0
102
+
103
+ * Forked gem and published on GitHub (gem sources -a http://gems.github.com)
104
+ * New Features
105
+ * Added pid file creation on daemonize with command line option to specify pid filename [Dylan Egan]
106
+
107
+ = 1.3.1
108
+
109
+ * Fix bug #12530, gmail causes SSL errors. Submitted by Kyle Maxwell
110
+ and Alex Ostleitner.
111
+ * Try ActionMailer::Base::server_settings then ::smtp_settings. Fixes
112
+ bug #12516. Submitted by Alex Ostleitner.
113
+
114
+ = 1.3.0
115
+
116
+ * New Features
117
+ * Added automatic mail queue cleanup.
118
+ * MAY CAUSE LOSS OF DATA. If you haven't run ar_sendmail within
119
+ the expiry time, set it to 0.
120
+ * Bugs fixed
121
+ * Authentication errors are now handled by retrying once.
122
+
123
+ = 1.2.0
124
+
125
+ * Bugs fixed
126
+ * Handle SMTPServerBusy by backing off @delay seconds then re-queueing
127
+ * Allow email delivery class to be set in ARMailer.
128
+ * ar_sendmail --mailq works with --table-name now.
129
+ * Miscellaneous Updates
130
+ * Added documentation to require 'action_mailer/ar_mailer' in
131
+ instructions.
132
+ * Moved to ZSS p4 repository
133
+ * Supports TLS now. Requested by Dave Thomas. smtp_tls.rb from Kyle
134
+ Maxwell & etc.
135
+
136
+ = 1.1.0
137
+
138
+ * Features
139
+ * Added --chdir to set rails directory
140
+ * Added --environment to set RAILS_ENV
141
+ * Exits cleanly on TERM or INT signals
142
+ * Added FreeBSD rc.d script
143
+ * Exceptions during SMTP sending are now logged
144
+ * No longer waits if sending email took too long
145
+ * Bugs fixed
146
+ * Fixed last send attempt in --mailq
147
+ * Better SMTP error handling
148
+ * Messages are removed from the queue on 5xx errors
149
+ * Added Net::SMTP.reset to avoid needing to recreate the connection
150
+
151
+ = 1.0.1
152
+
153
+ * Bugs fixed
154
+ * From and to of email destination were swapped
155
+
156
+ = 1.0.0
157
+
158
+ * Birthday
data/LICENSE.txt ADDED
@@ -0,0 +1,28 @@
1
+ Original code copyright 2006, 2007, Eric Hodel, The Robot Co-op. All
2
+ rights reserved. Some code under other license, see individual files
3
+ for details.
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions
7
+ are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright
10
+ notice, this list of conditions and the following disclaimer.
11
+ 2. Redistributions in binary form must reproduce the above copyright
12
+ notice, this list of conditions and the following disclaimer in the
13
+ documentation and/or other materials provided with the distribution.
14
+ 3. Neither the names of the authors nor the names of their contributors
15
+ may be used to endorse or promote products derived from this software
16
+ without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
19
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
22
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
23
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
24
+ OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
25
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.rdoc ADDED
@@ -0,0 +1,19 @@
1
+ = ar_mailer
2
+
3
+ A two-phase delivery agent for ActionMailer
4
+
5
+ Rubyforge Project:
6
+
7
+ http://rubyforge.org/projects/seattlerb
8
+
9
+ Documentation:
10
+
11
+ http://seattlerb.org/ar_mailer
12
+
13
+ and for forked additions
14
+
15
+ http://github.com/adzap/ar_mailer/wikis
16
+
17
+ == Changes to the Adzap_ar_mailer version
18
+
19
+ - Added priority
data/Rakefile ADDED
@@ -0,0 +1,76 @@
1
+ require 'rubygems'
2
+ require 'rake/gempackagetask'
3
+ require 'rake/testtask'
4
+ require 'rake/rdoctask'
5
+
6
+ $:.unshift(File.expand_path(File.dirname(__FILE__) + '/lib'))
7
+
8
+ require './lib/action_mailer/ar_sendmail'
9
+
10
+ ar_mailer_gemspec = Gem::Specification.new do |s|
11
+ s.name = %q{VvanGemert-ar_mailer}
12
+ s.version = ActionMailer::ARSendmail::VERSION
13
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
14
+ s.authors = ["Eric Hodel", "Adam Meehan", "Vincent van Gemert"]
15
+ s.default_executable = %q{ar_sendmail}
16
+ s.description = %q{Even delivering email to the local machine may take too long when you have to send hundreds of messages. ar_mailer allows you to store messages into the database for later delivery by a separate process, ar_sendmail.}
17
+ s.email = %q{vincent@floorplanner.com}
18
+ s.executables = ["ar_sendmail"]
19
+ s.extra_rdoc_files = ["History.txt", "LICENSE.txt", "README.rdoc"]
20
+ s.files = [
21
+ "History.txt",
22
+ "LICENSE.txt",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "bin/ar_sendmail",
26
+ "generators/ar_mailer/ar_mailer_generator.rb",
27
+ "generators/ar_mailer/templates/migration.rb",
28
+ "generators/ar_mailer/templates/model.rb",
29
+ "lib/adzap-ar_mailer.rb",
30
+ "lib/action_mailer/ar_mailer.rb",
31
+ "lib/action_mailer/ar_sendmail.rb",
32
+ "lib/smtp_tls.rb",
33
+ "share/bsd/ar_sendmail",
34
+ "share/linux/ar_sendmail",
35
+ "share/linux/ar_sendmail.conf",
36
+ "test/resources/action_mailer.rb",
37
+ "test/test_armailer.rb",
38
+ "test/test_arsendmail.rb",
39
+ "test/test_helper.rb"
40
+ ]
41
+ s.has_rdoc = true
42
+ s.homepage = %q{http://github.com/VvanGemert/ar_mailer}
43
+ s.rdoc_options = ["--main", "README.rdoc"]
44
+ s.require_paths = ["lib"]
45
+ s.rubyforge_project = %q{seattlerb}
46
+ s.summary = %q{A two-phase delivery agent for ActionMailer}
47
+ s.test_files = ["test/test_armailer.rb", "test/test_arsendmail.rb"]
48
+ s.add_development_dependency "minitest", ">= 1.5.0"
49
+ s.add_development_dependency "mocha", ">= 0.9.8"
50
+ end
51
+
52
+ Rake::GemPackageTask.new(ar_mailer_gemspec) do |pkg|
53
+ pkg.gem_spec = ar_mailer_gemspec
54
+ end
55
+
56
+ desc "Update ar_mailer.gemspec"
57
+ task :make_spec do
58
+ File.open("adzap-ar_mailer.gemspec", "w") do |f|
59
+ f.puts(ar_mailer_gemspec.to_ruby)
60
+ end
61
+ end
62
+
63
+ desc "Build packages and install"
64
+ task :install => :package do
65
+ sh %{sudo gem install --local --test pkg/VvanGemert-ar_mailer-#{ActionMailer::ARSendmail::VERSION}}
66
+ end
67
+
68
+ desc 'Default: run unit tests.'
69
+ task :default => :test
70
+
71
+ desc 'Test the ar_mailer gem.'
72
+ Rake::TestTask.new(:test) do |t|
73
+ t.libs << 'lib' << 'test'
74
+ t.test_files = FileList['test/**/test_*.rb'].exclude("test/test_helper.rb")
75
+ t.verbose = true
76
+ end
data/bin/ar_sendmail ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'action_mailer/ar_sendmail'
4
+
5
+ ActionMailer::ARSendmail.run
6
+
@@ -0,0 +1,25 @@
1
+ class ArMailerGenerator < Rails::Generator::NamedBase
2
+
3
+ def initialize(runtime_args, runtime_options = {})
4
+ runtime_args.unshift('Email') if runtime_args.empty?
5
+ super
6
+ end
7
+
8
+ def manifest
9
+ record do |m|
10
+ m.class_collisions class_name
11
+
12
+ m.template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
13
+
14
+ m.migration_template 'migration.rb', 'db/migrate', :assigns => {
15
+ :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}"
16
+ }, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}"
17
+ end
18
+ end
19
+
20
+ protected
21
+ def banner
22
+ "Usage: #{$0} #{spec.name} EmailModelName (default: Email)"
23
+ end
24
+
25
+ end
@@ -0,0 +1,15 @@
1
+ class <%= migration_name %> < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :<%= table_name %> do |t|
4
+ t.column :from, :string
5
+ t.column :to, :string
6
+ t.column :last_send_attempt, :integer, :default => 0
7
+ t.column :mail, :text
8
+ t.column :created_on, :datetime
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ drop_table :<%= table_name %>
14
+ end
15
+ end
@@ -0,0 +1,2 @@
1
+ class <%= class_name %> < ActiveRecord::Base
2
+ end
@@ -0,0 +1,35 @@
1
+ ##
2
+ # Adds sending email through an ActiveRecord table as a delivery method for
3
+ # ActionMailer.
4
+ #
5
+
6
+ class ActionMailer::Base
7
+
8
+ ##
9
+ # Set the email class for deliveries. Handle class reloading issues which prevents caching the email class.
10
+ #
11
+ @@email_class_name = 'Email'
12
+ @@priority = 100
13
+
14
+ def self.email_class=(klass)
15
+ @@email_class_name = klass.to_s
16
+ end
17
+
18
+ def self.email_class
19
+ @@email_class_name.constantize
20
+ end
21
+
22
+ ##
23
+ # Adds +mail+ to the Email table. Only the first From address for +mail+ is
24
+ # used.
25
+
26
+ def perform_delivery_activerecord(mail)
27
+ destinations = mail.destinations
28
+ mail.ready_to_send
29
+ sender = (mail['return-path'] && mail['return-path'].spec) || mail.from.first
30
+ destinations.each do |destination|
31
+ self.class.email_class.create :mail => mail.encoded, :to => destination, :from => sender, :priority => @@priority
32
+ end
33
+ end
34
+
35
+ end