4

新規ユーザーへの html ウェルカム メールの作成に取り組んでいますが、機能していません。送信すると、実際の html をレンダリングするのではなく、html コードをテキストとして表示します。Mailchimp のテンプレートから始めて自分のテンプレートの html を作成したので、動作しないことに驚いています。また、Putsmail.com と emailonacid.com を使用してメールを送信すると、問題ないように見えます。

ただし、本番環境では、電子メールが送信され、HTML が電子メール内のテキストとして表示されます (registration_confirmation.html.erb から):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" style="width: 100% !important; -webkit-text-size-adjust: none !important; background-color: #ffa500 !important; margin: 0; padding: 0;" bgcolor="#ffa500">
   <center>
     <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="backgroundTable" style="height: 100% !important; width: 100% !important; margin: 0; padding: 0;">
       <tr>
         <td align="center" valign="top">
         <!-- // Begin Template Preheader \\ -->
           <table border="0" cellpadding="10" cellspacing="0" width="600" id="templatePreheader" style="background-color: #ffa500;" bgcolor="#ffa500">
             <tr>
               <td valign="top" class="preheaderContent">
                 <table border="0" cellpadding="10" cellspacing="0" width="100%">
                   <tr>
                     <td valign="top">
                       <div mc:edit="std_preheader_content" style="color: #505050; font-family: Arial; font-size: 10px; line-height: 100%; text-align: left;" align="left">
                       </div>
                     </td>
                     <td valign="top" width="180">
                       <div mc:edit="std_preheader_links" style="color: #505050; font-family: Arial; font-size: 10px; line-height: 100%; text-align: left;" align="left">
                       </div>
                     </td>
                   </tr>
                 </table>
               </td>
             </tr>
           </table>

           <table border="0" cellpadding="0" cellspacing="0" width="600" id="templateContainer" style="background-color: #ffffff; border: 1px solid #dddddd;" bgcolor="#ffffff">
             <tr>
               <td align="center" valign="top">
                 <table border="0" cellpadding="10" cellspacing="0" width="600" id="templateBody">
                   <tr>
                     <td valign="top" class="bodyContent" style="background-color: #ffffff;" bgcolor="#ffffff">
                       <table border="0" cellpadding="10" cellspacing="0" width="100%">
                         <tr>
                           <td>
                             <a href="http://foobar.com">                                                                                                                      
                               <img src="https://s3.amazonaws.com/images/email_logo.gif" style="float:right;" alt="logo" />
                             </a>
                           </td>
                         </tr>

                         <tr>
                           <td valign="top">
                             <div mc:edit="std_content00" style="color: #505050; font-family: Arial; font-size: 14px; line-height: 150%; text-align: left;" align="left">
                               <span class="h2" style="color: #202020; display: block; font-family: Arial; font-size: 22px; font-weight: bold; line-height: 100%; margin-bottom: 10px; text-align: left;">Welcome to <%= user.name %>!</span>
                               Thanks for registering!<br /><br />
                             </div>                                                                                                                
                           </td>
                         </tr>
                       </table>
                     </td>
                   </tr>
                 </table>
               </td>
             </tr>

             <tr>
               <td align="center" valign="top">     
                 <table border="0" cellpadding="10" cellspacing="0" width="600" id="templateFooter" style="background-color: #FDFDFD; border-top-width: 0;" bgcolor="#FDFDFD">
                 <tr>
                   <td valign="top" class="footerContent"></td>
                 </tr>
               </table>
             </td>
           </tr>
         </table>
         <br>
       </td>
     </tr>
   </table>
 </center>

 <style type="text/css">
   body { width: 100% !important; }
   body { -webkit-text-size-adjust: none !important; }
   body { margin: 0 !important; padding: 0 !important; }
   img { border: none !important; font-size: 14px !important; font-weight: bold                                    
   !important; height: auto !important; line-height: 100% !important; outline: none  
   !important; text-decoration: none !important; text-transform: capitalize !important; }
   #backgroundTable { height: 100% !important; margin: 0 !important; padding: 0
   !important; width: 100% !important; }
   body { background-color: #FAFAFA !important; }
   .preheaderContent div a:visited { color: #336699 !important; font-weight: normal
   !important; text-decoration: underline !important; }
   .headerContent a:visited { color: #336699 !important; font-weight: normal
   !important; text-decoration: underline !important; }
   .bodyContent div a:visited { color: #336699 !important; font-weight: normal
   !important; text-decoration: underline !important; }
   .footerContent div a:visited { color: #336699 !important; font-weight: normal
   !important; text-decoration: underline !important; }
   body { background-color: #ffa500 !important; }
 </style>

私のメーラー:

def registration_confirmation(user)
  @user = user
  subject     "Welcome #{@user.first_name}!"
  from        "info@foobar.com"
  recipients  @user.email
  sent_on     Time.now
end

ユーザー登録モデルから呼び出されます:

Notifier.registration_confirmation(user).deliver
4

1 に答える 1

3

content-type が欠落しているようです:

def registration_confirmation(user)
  @user = user
  subject       "Welcome #{@user.first_name}!"
  from          "info@foobar.com"
  recipients    @user.email
  sent_on       Time.now

  # Set content-type header
  content_type "text/html"
end

デフォルトはtext/plainであるため、HTML またはマルチパート メッセージに対して明示的に設定する必要があります。

于 2012-04-09T19:58:07.853 に答える