Methods
Public Instance
Public Instance methods
Hook called after processing any mail, whether the mail was handled or not. Does nothing by default.
# File lib/roda/plugins/mail_processor.rb 412 def after_mail_hook 413 nil 414 end
Hook called after processing a mail, when the mail was handled. Does nothing by default.
# File lib/roda/plugins/mail_processor.rb 418 def handled_mail_hook 419 nil 420 end
The mail instance being processed.
# File lib/roda/plugins/mail_processor.rb 430 def mail 431 env['roda.mail'] 432 end
The recipients of the mail instance being processed, uses the To and CC headers by default.
# File lib/roda/plugins/mail_processor.rb 442 def mail_recipients 443 Array(to) + Array(cc) 444 end
The text of the mail instance being processed, uses the decoded body of the mail by default.
# File lib/roda/plugins/mail_processor.rb 436 def mail_text 437 mail.body.decoded 438 end
Perform the processing of mail for this request, first considering routes defined via the class-level rcpt
method, and then the normal routing tree passed in as the block.
# File lib/roda/plugins/mail_processor.rb 384 def process_mail(&block) 385 if string_routes = opts[:mail_processor_string_routes] 386 addresses = mail_recipients 387 388 addresses.each do |address| 389 if meth = string_routes[address.to_s.downcase] 390 _roda_handle_route{send(meth, @_request)} 391 return 392 end 393 end 394 395 opts[:mail_processor_regexp_routes].each do |regexp, meth| 396 addresses.each do |address| 397 if md = regexp.match(address) 398 _roda_handle_route{send(meth, @_request, *md.captures)} 399 return 400 end 401 end 402 end 403 end 404 405 _roda_handle_main_route 406 407 nil 408 end
Raise an UnhandledMail
exception with the given reason, used to mark the mail as not handled. A reason why the mail was not handled must be provided, which will be used as the exception message.
# File lib/roda/plugins/mail_processor.rb 449 def unhandled_mail(reason) 450 raise UnhandledMail, reason 451 end
Hook called after processing a mail, when the mail was not handled. Reraises the UnhandledMail
exception raised during mail processing by default.
# File lib/roda/plugins/mail_processor.rb 425 def unhandled_mail_hook 426 raise 427 end