lib/taskjuggler/SheetHandlerBase.rb in taskjuggler-3.1.0 vs lib/taskjuggler/SheetHandlerBase.rb in taskjuggler-3.2.0
- old
+ new
@@ -23,11 +23,12 @@
attr_accessor :workingDir, :dryRun
def initialize(appName)
@appName = appName
# User specific settings
- @smtpServer= nil
+ @emailDeliveryMethod = 'smtp'
+ @smtpServer = nil
@senderEmail = nil
@workingDir = nil
@scmCommand = nil
# The default project ID
@projectId = 'prj'
@@ -85,11 +86,18 @@
text
end
def setWorkingDir
# Make sure the user has provided a properly setup config file.
- error('\'smtpServer\' not configured') unless @smtpServer
+ case @emailDeliveryMethod
+ when 'smtp'
+ error('\'smtpServer\' not configured') unless @smtpServer
+ when 'sendmail'
+ # nothing to check
+ else
+ error("Unknown emailDeliveryMethod #{@emailDeliveryMethod}")
+ end
error('\'senderEmail\' not configured') unless @senderEmail
# Change into the specified working directory
begin
Dir.chdir(@workingDir) if @workingDir
@@ -154,15 +162,24 @@
sendEmail(to, subject, rti, attachment, from, inReplyTo)
end
def sendEmail(to, subject, message, attachment = nil, from = nil,
inReplyTo = nil)
- Mail.defaults do
- delivery_method :smtp, {
- :address => @smtpServer,
- :port => 25
- }
+ case @emailDeliveryMethod
+ when 'smtp'
+ Mail.defaults do
+ delivery_method :smtp, {
+ :address => @smtpServer,
+ :port => 25
+ }
+ end
+ when 'sendmail'
+ Mail.defaults do
+ delivery_method :sendmail
+ end
+ else
+ raise "Unknown email delivery method: #{@emailDeliveryMethod}"
end
begin
self_ = self
mail = Mail.new do
@@ -200,10 +217,10 @@
if @dryRun
# For testing and debugging, we only print out the email.
puts "-- Email Start #{'-' * 60}\n#{mail.to_s}-- Email End #{'-' * 62}"
log('INFO', "Show email '#{subject}' to #{to}")
else
- # Actually send out the email via SMTP.
+ # Actually send out the email.
begin
mail.deliver
rescue
# We try to send out another email. If that fails again, we abort
# without further attempts.