9

テキストメーラーにスペースを示していないactionmailerのは、私は、このファイルを送ることになっていますactionmailerのコントローラを持って

Welcome to znood.com, <%= @user.name %> 

You have successfully signed up to znood.com, 
Your username is: <%= @user.email %>. 

To login to the site, just follow this link: <%= @url %>. 

Thanks for joining and have a great day! 

The Znood Team 

[編集済み] これはコントローラのコードである:

def sendmail 
     @user = User.first 
     UserMailer.welcome_email(@user).deliver 
     render "user_mailer/welcome_email.text" 
     #render the file to see what we're supposed to send 
end 

これはUserMailer 0内のコードでありますactionmailerの::ベース

def welcome_email(user) 
    @user = user 
    @url = "http://znood.com/" 
    mail(:to => user.email, :subject => "Welcome to Znood!") 
    end 

は、これは私が受けていたメールです:

Welcometoznood.com,AbdoAchkarYouhavesuccessfullysigneduptoznood.com,Yourusernameis:blabla.Tologintothesite,justfollowthislink:http://znood.com/.Thanksforjoiningandhaveagreatday!TheZnoodTeam 

をスペース、キャリッジリターンとラインフィードを含めるためにどのように任意の手掛かり?

[編集] letter_openerの宝石をインストールした後、私は私のコンソールで以下を参照してください。

----==_mimepart_4ea9882a2735c_1c782d964bc18193 

Date: Thu, 27 Oct 2011 19:34:50 +0300 

Mime-Version: 1.0 

Content-Type: text/plain; 

charset=UTF-8 

Content-Transfer-Encoding: 7bit 

Content-ID: <[email protected]> 



Welcometoznood.com,AbdoAchkarYouhavesuccessfullysigneduptoznood.com,Yourusername 
is:blabla.Tologintothesite,justfollowthislink:http://znood.com/.Thanksforjoiningandhaveagreatday!TheZnoodTeam 

私は「コンテンツ転送エンコード」のヘッダーを変更しようとしたが、彼らは変更していないようです。私はまた、デフォルト値を設定しようとしました。私たちは7ビットエンコーディングに悩まされているようです。

[編集] 問題を見つける私たちを助けるべきであるもう一つは、私は、ファイルのレンダリングに問題があるかどうかを確認するために、メール機能に次のparamsを渡ししようとしたということです:「!Hellothereを」

mail(:to => user.email, :subject => "Welcome to Znood!") do |format| 
     #format.text(:content_transfer_encoding => "base64") 
     format.text { render :text => "Hello there!" } 
    end 

また照合された。

次に、エラーの原因となっているレンダリング機能かメール機能かを確認するために、以下のコードを試してみました。

mail(:to => user.email, :subject => "Welcome to Znood!") do |format| 
     format.text { "hello there!" } 
end 

また、照合されました。

+0

ソーステンプレート内のCRLFとは何ですか? –

+0

私は正確には分かりませんが、私たちがスペースの問題に取り組み、それを解決すれば、CRLFの問題も解決します=) – Abdo

答えて

0

これは解決に時間がかかりました。問題はActionMailerではありませんでした。

この問題が発生している場合は、まずその原因となるコードや宝石ではないことを確認してください。新しいレールアプリケーションを起動し、それを使ってActionMailerをテストしてください。 (この提案のために@RubyCyanideに感謝します)

私の場合、joinString classイニシャライザに含まれていました。あなたやあなたが使用している宝石がMailのjoin関数と競合している可能性は非常に高いです。

希望すると便利です。

1

デフォルトでは、メーラーはテキストメールを送信する必要があります。これはクライアント側で発生している可能性があります。本当の解決策は、テキストテンプレートとHTMLテンプレートの両方を持つことです(またはトリッキー(またはMarkdown)だけで同じテンプレートを使用する場合)。

+0

私は両方ともテキストメールをレンダリングしています。 。私は一度に1つのファイルを持つことを試み、両方を持っていた。私は同じ問題を抱えています。 – Abdo

+0

@Abdoこれは依然としてクライアントの問題であり、あなたのHTMLテンプレートに何が入っているのかわかりません(実際にはHTMLを含んでいるようです)。 –

+0

Daveとここで同意します。おそらくクライアントの問題です。 –

0

ActionMailer::Baseから継承するクラスをセットアップします。あなたのコントローラにはメソッドを作成してから、コントローラのFooMailer.welcome_email(@user.email).deliverを呼び出してください。これを行う場合は、ジョブを再描画または遅延させることを検討してください。

間隔に関する問題がある限り、 welcome_email.html.erbとそれを送信しますか?welcome_emailメソッドでhtml(レイアウトの有無にかかわらず)を使用するように指定することができます:

def welcome_email(user) 
    @user = user 
    @url = "http://znood.com/" 
    mail(:to => user.email, :subject => "Welcome to Znood!") do |format| 
    format.html #{ render :layout => 'my_layout' } 
    end 
end 

あなたはRyan Bates RailsCast#206 hereが使用されているのを見ることができ、配送前にメールを傍受して見た目を確認する方法も示しています。より簡単な方法は、彼のletter opener gemを使用して、ブラウザの電子メールを開きます(devモードで使用する)。

+0

申し訳ありません、コードを編集しました。これは私が持っているものです。私はさまざまなフォーマットで試しましたが、うまくいきませんでした。 – Abdo

+0

@Abdo私はまだレターオープナーの宝石を置いて、あなたが送信しているものとクライアントが見ているもの(gmailなど)を見ています。たぶんアプリの問題ではなく、クライアント設定の問題です。 –

+0

私はレターオープナーの宝石をインストールし、同じ結果を得ました。すべての単語が互いに照合されます。 – Abdo

関連する問題