title: How to render rails mailer views in Mailgun HTTP API
body: <p>I'm using Mailgun HTTP API to send emails from rails application.But I'm not able to render the mailer views. This is my mailer class.  </p>
  
  <pre><code>class MailgunMails &lt; ActionMailer::Base
  
      def send_complex_message
        data = Multimap.new
        data[:from] = "Excited User &lt;postmasters@#{@@domain}&gt;"
        data[:to] = "alice@example.com"
        data[:subject] = "Hello"
        data[:html] = File.open("#{Rails.root}/app/views/mailgun_mails/send_complex_message.html.erb", 'r').to_s.html_safe  
        ## also tried
        data[:html] = render(template: "send_complex_message.html.erb")
        response = RestClient.post "https://api:#{@@private_key}"\
        "@api.mailgun.net/v2/#{@@domain}/messages", data
  
        response = JSON.parse(response)
  
      end
  
  end  
  </code></pre>
  
  <p>But that throws:  </p>
  
  <blockquote>
    <p>NoMethodError: undefined method `each_byte' for nil:NilClass  </p>
  </blockquote>
  
  <p>How do I use mailer views with Mailgun API.</p>
  
  <p>PS: I know there are many gems available to use mailgun with rails but none of them gives full functionality as the API does.</p>
  
  <p><strong>IF there is any alternative way to send emails from the api using the rails views,  I'm waiting for that answer. I just don't know how to do that (even if it doesn't use actionmailer)</strong></p>
  
  <p><strong>FULL error trace</strong>  </p>
  
  <pre><code>NoMethodError: undefined method `each_byte' for nil:NilClass
      from /Users/example/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/uri/common.rb:307:in `block in escape'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/activesupport-4.0.4/lib/active_support/core_ext/string/output_safety.rb:177:in `gsub'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/activesupport-4.0.4/lib/active_support/core_ext/string/output_safety.rb:177:in `gsub'
      from /Users/example/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/uri/common.rb:304:in `escape'
      from /Users/example/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/uri/common.rb:623:in `escape'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/payload.rb:150:in `handle_key'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/payload.rb:143:in `block in build_stream'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/payload.rb:142:in `collect'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/payload.rb:142:in `build_stream'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/payload.rb:53:in `initialize'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/payload.rb:18:in `new'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/payload.rb:18:in `generate'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/request.rb:45:in `initialize'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in `new'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in `execute'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/rest-client-1.6.7/lib/restclient.rb:72:in `post'
  ... 2 levels...
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.4/lib/abstract_controller/callbacks.rb:18:in `block in process_action'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/activesupport-4.0.4/lib/active_support/callbacks.rb:373:in `_run__1281843520849433682__process_action__callbacks'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/activesupport-4.0.4/lib/active_support/callbacks.rb:80:in `run_callbacks'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.4/lib/abstract_controller/callbacks.rb:17:in `process_action'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.4/lib/abstract_controller/base.rb:136:in `process'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.4/lib/abstract_controller/rendering.rb:44:in `process'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/actionmailer-4.0.4/lib/action_mailer/base.rb:503:in `process'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/actionmailer-4.0.4/lib/action_mailer/base.rb:497:in `initialize'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/actionmailer-4.0.4/lib/action_mailer/base.rb:480:in `new'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/actionmailer-4.0.4/lib/action_mailer/base.rb:480:in `method_missing'
      from (irb):1
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/railties-4.0.4/lib/rails/commands/console.rb:90:in `start'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/railties-4.0.4/lib/rails/commands/console.rb:9:in `start'
      from /Users/example/.rvm/gems/ruby-2.0.0-p451/gems/railties-4.0.4/lib/rails/commands.rb:62:in `&lt;top (required)&gt;'
      from bin/rails:4:in `require'
  </code></pre>