Search code examples
ruby-on-rails-3gmailactionmailermultipartmultipart-alternative

noname attachment in my gmail inbox


While using Rails ActionMailer with Multipart Emails I created both:

approve_trade_email.html.erb

AND

approve_trade_email.text.erb

I do receive a well HTML formatted email in my Mail client (Mac OSX) but when checking my Gmail account for the same email I got an empty body with a noname attachement with the multiparts inside?

Help?

Why do I get this in Gmail?

thx

Joel

HERE THE NONAME ATTACHEMENT IN GMAIL:

----==_mimepart_4eab3a61bb3a8_10583ff27b4e363c43018
Date: Sat, 29 Oct 2011 01:27:29 +0200
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Content-ID: <4eab3a61bc857_10583ff27b4e363c43191@joel-maranhaos-macbook-pro.local.mail>


Do not to forget to make a donation on our Site: /home/index?path_only=false


----==_mimepart_4eab3a61bb3a8_10583ff27b4e363c43018
Date: Sat, 29 Oct 2011 01:27:29 +0200
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Content-ID: <4eab3a61bd5fa_10583ff27b4e363c432cb@joel-maranhaos-macbook-pro.local.mail>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>  
<link href="/assets/powerplants.css" media="screen" rel="stylesheet" type="text/css" />

</head>
<body id="email">      

<p><b>Do not to forget to make a donation on our <a href="/home/index?path_only=false">Site</a>.</b></p>

</body>
</html>
----==_mimepart_4eab3a61bb3a8_10583ff27b4e363c43018--

Solution

  • I got the same problem and found the solution:

    It's a bug in the old ActionMailer API of Rails 3, which does not include the multipart boundary definition in mail header.

    see: https://github.com/rails/rails/pull/3090

    You just have to use the new API (using the mail method)

    class UserMailer < ActionMailer::Base
      default :from => "[email protected]"
    
      def welcome_email(user)
        @user = user
        @url  = "http://example.com/login"
        mail(:to => user.email, :subject => "Welcome to My Awesome Site")
      end
    end