多くの通知メールを送信するRailsアプリがあります。ユーザーがプレーンテキストとHTMLを選択できるようにしたいと考えています。
当初、私たちの望みは常にマルチパートだったので、コンテンツタイプを設定せず、email.html.erbビューとemail.text.erbビューの両方を持っていました。これらのビューは、送信されてマルチパートを作成します。
ただし、ユーザー設定に基づいてcontent_typeを指定すると、マルチパートまたはプレーン/テキストに適切に設定されますが、htmlテンプレートはプレーンテキストの電子メールの下部にプレーンテキストとして含まれます。
コードは次のとおりです。
メーラーアクション:
def client_creation(client) # When client checks in for the first time
@client = client
content_type = client.company.html_emails ? nil : 'text/plain'
email_prefix = client.company.brand ? client.company.brand.email_subject_prefix : 'MonitoringClient'
mail(to: @client.company.administrative_reporting_address, subject: "[#{email_prefix}][Initial Check-in] #{@client.machine_name.html_safe} of #{@client.clientgroup.name}", content_type: content_type)
end
上記のコードは、クライアントの会社でhtml_emailsがオンになっているかどうかをチェックし、オンになっている場合は、content_typeをplain/textに設定します。その結果、次のようになります。
IRB出力:
#<Mail::Message:70269523266340, Multipart: false, Headers: <Date: Sun, 11 Nov 2012 09:09:43 -0600>, <From: notifications@monitoringclient.com>, <To: ommitted>, <Message-ID: <509fbfb7e0c4e_11e113fe8e4435b4084183@Jonathan.local.mail>>, <Subject: [Initial Check-in] Jonathan of hivemind labs>, <Mime-Version: 1.0>, <Content-Type: text/plain>, <Content-Transfer-Encoding: 7bit>>
これまでのところ、優れたMultipartはfalseですcontent_typeはtext / plainですが、結果の電子メール本文は次のとおりです。
----==_mimepart_509fbfb7ddb8b_11e113fe8e4435b4083853
Date: Sun, 11 Nov 2012 09:09:43 -0600
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <509fbfb7de92a_11e113fe8e4435b408399f@Jonathan.local.mail>
First check-in notification for Jonathan.
=========================== CLIENT DETAILS ===========================
MACHINE INFORMATION:
MacBookAir4,1
REPORT TIME:
Nov 11, 2012 8:17am
CLIENT GROUP:
Hivemind Labs
MACHINE NAME:
Jonathan
LAST USER:
Jonathan
SERIAL NUMBER:
ommited
MACHINE SPECIFICATIONS:
RAM:
4 GB
PROCESSOR INFO:
1x
1.8 GHz,
2 core
Intel Core i7
CLIENT VERSION:
5.0.5
UPTIME AT LAST CHECKIN:
4 days, 21 hours, 11 mins
----==_mimepart_509fbfb7ddb8b_11e113fe8e4435b4083853
Date: Sun, 11 Nov 2012 09:09:43 -0600
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <509fbfb7e0496_11e113fe8e4435b40840ce@Jonathan.local.mail>
<!DOCTYPE html>
<html>
<head>
<title> </title>
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
<table style="box-shadow: 0px 0px 28px -10px #222; margin: 10px auto 20px" border="0" cellpadding="0" cellspacing="0" width="600" id="templateContainer" >
<tr>
<td align="center" valign="top">
<table border="0" cellpadding="0" cellspacing="0" width="600" id="templateHeader">
<tr>
<td class="headerContent">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top" style="width:600px">
<table border="0" cellpadding="10" cellspacing="0" width="600px" id="templateBody">
<tr>
<td valign="top" class="bodyContent">
<table border="0" cellpadding="0" cellspacing="0" width="600px">
<tr>
<td valign="top">
<div class="mainContent">
<style type="text/css" media="screen">
table.info tr td:first-child{
width:40%;
color: #ffffff;
text-shadow:1px 1px 1px #555;
background-color: #2C2C2C;
background-image: -moz-linear-gradient(top, #888, #777);
background-image: -ms-linear-gradient(top, #888, #777);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#888), to(#777));
background-image: -webkit-linear-gradient(top, #888, #777);
background-image: -o-linear-gradient(top, #888, #777);
background-image: linear-gradient(top, #888, #777);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#888', endColorstr='#777', GradientType=0);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25)
}
legend + .page-actions.page-actions-small {
margin-top: -49px;
}
</style>
<legend>Client Details</legend>
<div id="" class="page-actions page-actions-small pull-right">
<a href="#" class="btn btn-mini">Complete Overview</a>
</div> <!-- close: page-actions -->
<table style="" class="table table-bordered table-striped table-condensed info">
<tbody>
<tr><td>Client Group</td><td>Hivemind Labs</td></tr>
<tr><td>Serial Number</td><td></td></tr>
<tr><td>Machine Name</td><td> Jonathan</td></tr>
<tr><td>Last User</td><td>Jonathan</td></tr>
<tr><td>Operating system</td><td>OS X 10.8.2 (12C60)</td></tr>
<tr><td>Installed RAM</td><td>4 GB</td></tr>
<tr><td>Model Details</td><td>MacBookAir4,1</td></tr>
<tr><td>Uptime</td><td>4 days, 21 hours, 11 mins</td></tr>
</tbody>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" valign="top">
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td style="padding: 0 0 20px 20px">
<small class="copyright"> All Rights Reserved.</small>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
----==_mimepart_509fbfb7ddb8b_11e113fe8e4435b4083853--
なぜすべてのmimeパーツデータ、なぜhtmlコンテンツがテキストとして表示されるのですか?プレーンテキストのみの電子メールが欲しいです。これはそれがどのように達成されるかではありませんか?
私が気づいたことの1つは、電子メールのhtmlセクションにcontent_type:'text/html'と書かれていることです。多分それが含まれている理由ですか?これを防ぐことはできますか?
この質問は近いように見えましたが、この人はマルチパートを送信する方法を模索しているようです。これは私たちの問題ではありません。 メッセージ本文にテキストとして表示されるRailsメーラーmimepart
また、いくつかの場所でそれを確認した後、テキストテンプレートをemail.text.plain.erbに変更しようとしましたが、それも機能しませんでした。
興味のある方は、次のメールヘッダーをご覧ください。
Delivered-To: jon@hivemindlabs.com
Received: by 10.60.124.225 with SMTP id ml1csp294562oeb;
Sun, 11 Nov 2012 07:09:46 -0800 (PST)
Received: by 10.236.122.143 with SMTP id t15mr16902572yhh.26.1352646586007;
Sun, 11 Nov 2012 07:09:46 -0800 (PST)
Return-Path: <info@hivemindlabs.com>
Received: from mail-gh0-f181.google.com (mail-gh0-f181.google.com [209.85.160.181])
by mx.google.com with ESMTPS id p20si1615988ano.75.2012.11.11.07.09.45
(version=TLSv1/SSLv3 cipher=OTHER);
Sun, 11 Nov 2012 07:09:45 -0800 (PST)
Received-SPF: pass (google.com: domain of info@hivemindlabs.com designates 209.85.160.181 as permitted sender) client-ip=209.85.160.181;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of info@hivemindlabs.com designates 209.85.160.181 as permitted sender) smtp.mail=info@hivemindlabs.com
Received: by mail-gh0-f181.google.com with SMTP id z22so1332210ghb.26
for <jon@hivemindlabs.com>; Sun, 11 Nov 2012 07:09:45 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=google.com; s=20120113;
h=date:from:to:message-id:subject:mime-version:content-type
:content-transfer-encoding:x-gm-message-state;
bh=OFH7ScRSXxkeW0Ig+UdGXMRcNoKwEcIPDFaTVrwnnRs=;
b=i+Oq1YtnJVh3hM6bB5JgXbZGUS1KnvIsyX2zU2UCoCGtGd1DrvifYQGTPSkqbjlqg0
vArkYg9ZOApVkueLh8fU3lXocCgXy1cSQ7pnTDo5aj2YKyNj8XcshGU5PN24nKmNkJNn
AOHD75ounew3lrfL/dPGx5rfD6ROIgOORIHioPUSs9sFPUbbfu1OsPDBlAAv4zPWbBuG
tbjR1JL7DntD3sPzcHiZJ9XyajhhuYQPZ/j5f/++Bdyfqq1s8uxlZvapQlndai58KtqU
EjmDb91+C/uIc9FwcT2YE0vv3pdrIHnlGYmfyX/sB0ZDDET+dTFcCOmbqpbaAwxavRb+
GAUg==
Received: by 10.236.83.103 with SMTP id p67mr16870674yhe.78.1352646585386;
Sun, 11 Nov 2012 07:09:45 -0800 (PST)
Return-Path: <info@hivemindlabs.com>
Received: from gmail.com (ip-216-115-131-150.static.eatel.net. [216.115.131.150])
by mx.google.com with ESMTPS id u11sm3665339ane.11.2012.11.11.07.09.44
(version=TLSv1/SSLv3 cipher=OTHER);
Sun, 11 Nov 2012 07:09:45 -0800 (PST)
Date: Sun, 11 Nov 2012 09:09:43 -0600
From: info@hivemindlabs.com
To: jon@hivemindlabs.com
Message-ID: <509fbfb7e0c4e_11e113fe8e4435b4084183@Jonathan.local.mail>
Subject: [Initial Check-in] Jonathan of hivemind labs
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Gm-Message-State: ALoCoQlSNX58YFYU6Idzq84zch66CnL12QD/WrT3R8kcu0wT2jV9oppA1clUl9pHY2hta0vIMqJx