render_mail (Merb::MailController)

    # File lib/merb-mailer/mail_controller.rb, line 212
        def render_mail(options = @method)
          @_missing_templates = false # used to make sure that at least one template was found
          # If the options are not a hash, normalize to an action hash
          options = {:action => {:html => options, :text => options}} if !options.is_a?(Hash)

          # Take care of the options
          opts_hash = {}
          opts = options.dup
          actions = opts.delete(:action) if opts[:action].is_a?(Hash)
          templates = opts.delete(:template) if opts[:template].is_a?(Hash)

          # Prepare the options hash for each format
          # We need to delete anything relating to the other format here
          # before we try to render the template.
          [:html, :text].each do |fmt|
            opts_hash[fmt] = opts.delete(fmt)
            opts_hash[fmt] ||= actions[fmt] if actions && actions[fmt]
            opts_hash[:template] = templates[fmt] if templates && templates[fmt]
          end

          # Send the result to the mailer
          { :html => "rawhtml=", :text => "text="}.each do |fmt,meth|
            begin
              local_opts = opts.merge(:format => fmt)
              local_opts.merge!(:layout => false) if opts_hash[fmt].is_a?(String)

              clear_content
              value = render opts_hash[fmt], local_opts
              @mail.send(meth,value) unless value.nil? || value.empty?
            rescue Merb::ControllerExceptions::TemplateNotFound => e
              # An error should be logged if no template is found instead of an error raised
              if @_missing_templates
                Merb.logger.error(e)
              else
                @_missing_templates = true
              end
            end
          end
          @mail
        end