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 +158 -0
- data/LICENSE.txt +28 -0
- data/README.rdoc +19 -0
- data/Rakefile +76 -0
- data/bin/ar_sendmail +6 -0
- data/generators/ar_mailer/ar_mailer_generator.rb +25 -0
- data/generators/ar_mailer/templates/migration.rb +15 -0
- data/generators/ar_mailer/templates/model.rb +2 -0
- data/lib/action_mailer/ar_mailer.rb +35 -0
- data/lib/action_mailer/ar_sendmail.rb +481 -0
- data/lib/adzap-ar_mailer.rb +1 -0
- data/lib/smtp_tls.rb +105 -0
- data/share/bsd/ar_sendmail +30 -0
- data/share/linux/ar_sendmail +78 -0
- data/share/linux/ar_sendmail.conf +30 -0
- data/test/resources/action_mailer.rb +197 -0
- data/test/test_armailer.rb +58 -0
- data/test/test_arsendmail.rb +528 -0
- data/test/test_helper.rb +9 -0
- metadata +121 -0
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,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,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
|