2

次の問題:レールを介してHTMLメールを送信しようとすると、内容が添付された空のメールとしてgooglemailアドレスに届きます。

ここで何が間違っているのかよくわかりません。

次のように設定します。

/app/mailers/testmail.rb
class Testmail < ActionMailer::Base
  default :from => "our_adress@our.router"
  default_url_options[:host] = '10.10.8.1'

  def email
    subject 'Willkommen!'
    recipients 'me@googlemail.com'
    from 'our_adress@our.router'
    sent_on Time.now
  end
end

/app/views/testmail/email.html.erb
<p>Dies ist eine <strong>Testmail!</strong></p>

/app/views/testmail/email.text.erb
Dies ist eine Test-Email!

これは私の Googlemail-Account に届くものです:

受信トレイ

最初の電子メールは html.erb と text.erb がアクティブな状態で、2 番目の電子メールは text.erb のみです。ユーザー名「root」は無視します。これは、実際のメーラーが別のサーバー上にあるためにpostfixが書き直されたためです(レールサーバーからのメールはメールサーバーに送信され、メールサーバーは実際にメールを送信します-私のセットアップではありません;)

最初のメールの生データは次のとおりです。

Delivered-To: me@googlemail.com
Received: by 10.101.108.3 with SMTP id k3cs279048anm;
    Wed, 21 Sep 2011 04:24:29 -0700 (PDT)
Received: by 10.204.134.8 with SMTP id h8mr508445bkt.11.1316604268267;
    Wed, 21 Sep 2011 04:24:28 -0700 (PDT)
Return-Path: <inet@our_server>
Received: from our_server (our_server. [100.0.0.0])
    by mx.google.com with ESMTP id i7si2877863bke.151.2011.09.21.04.24.27;
    Wed, 21 Sep 2011 04:24:28 -0700 (PDT)
Received-SPF: neutral (google.com: 100.0.0.0 is neither permitted nor denied by best guess record for domain of inet@our_server) client-ip=100.0.0.0;
Authentication-Results: mx.google.com; spf=neutral (google.com: 100.0.0.0 is neither permitted nor denied by best guess record for domain of inet@our_server) smtp.mail=inet@our_server
Received: from zero (our_server [100.0.0.1])
by our_server (Postfix) with SMTP id 4251724B65
for <me@googlemail.com>; Wed, 21 Sep 2011 13:24:26 +0200 (CEST)
Received: by zero (sSMTP sendmail emulation); Wed, 21 Sep 2011 13:24:26 +0200
From: "root" <inet@our_server>
Date: Wed, 21 Sep 2011 13:24:25 +0200
To: me@googlemail.com
Message-ID: <4e79c96a2ed6b_2ba53f7fe85ced9044023@zero.our_router.mail>
Subject: Willkommen!
Mime-Version: 1.0
Content-Type: multipart/alternative
Content-Transfer-Encoding: 7bit

----==_mimepart_4e79c96a1adc0_2ba53f7fe85ced90437f9
Date: Wed, 21 Sep 2011 13:24:26 +0200
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Content-ID: <4e79c96a28cbb_2ba53f7fe85ced9043891@zero.our_router.mail>

Dies ist eine Test-Email!

----==_mimepart_4e79c96a1adc0_2ba53f7fe85ced90437f9
Date: Wed, 21 Sep 2011 13:24:26 +0200
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Content-ID: <4e79c96a2bd8d_2ba53f7fe85ced90439a1@zero.our_router.mail>

<p>Dies ist eine <strong>Testmail!</strong></p>


----==_mimepart_4e79c96a1adc0_2ba53f7fe85ced90437f9--
4

2 に答える 2

3

Ruby や Rails については何も知りませんが、MIME については少し知っています。最上位Content-Typeヘッダーは次のようになります。

Content-Type: multipart/alternative;boundary="--==_mimepart_4e79c96a1adc0_2ba53f7fe85ced90437f9"
于 2011-09-21T14:00:18.630 に答える
1

さて、答えが見つかりました。メールを組み立てる上記のバージョンには、必要な境界が含まれていません。でも、

mail(:to => 'whoever@wheree.ver')

動作し、正しい境界を設定します。

于 2011-09-21T22:37:13.337 に答える