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.