2017-03-18 10 views
0

私は、レールアプリケーションを開発し、ActionMailerを使用してユーザーに電子メールを送信しています。私はすべての電子メールに添付ファイルを含める方法を知っています。しかし、ユーザーインターフェイスの改善として特定の添付ファイルを明示的にダウンロードするために、メーラービュー内にボタンを提供できるかどうかは疑問でした。電子メールに添付ファイルをダウンロードするボタンを含めることはできますか?

更新:

私は正直これについて重要な何かを言及するのを忘れてしまいました。電子メールからファイルをダウンロードするために構築する必要がある最終的なエンドポイントは、Authorizationヘッダーで認証され、その値はbase64を使用してコード化されたトークンです。電子メール内にこのトークンを送信することによって脆弱性が存在するかどうかわかりません。

+0

電子メールでAuthorizationトークンを送信することは、はがきにパスワードを送信することとほぼ同じです。電子メールでリンクを送信すると、ダウンロードURLに許可が必要なのはなぜですか?オプションではなく、最初に(ダウンロードする前に)ログインするのはなぜですか?どのように賢明なトークンは、一度のトークンですか?または誰かが他の要求のためにトークンを再利用することができますか? – spickermann

+0

フローは次のとおりです。ユーザーがAndroidアプリケーションからビルドしているレールサーバーまでエンドポイントを消費します。応答として、機密情報のあるレポート(CSVファイル)が電子メールでユーザーに送信されます。そのため、エンドポイントには認証が必要です。ですから、私はCSVファイルに直接応答する他のエンドポイントを作成することを考えていますが、認証する必要もあります。トークンは、他の要求に対して再利用することができます。 – gualopezb

+0

もう1つのオプションは、添付されたCSVファイルへのリンクを作成することですが、可能かどうかわかりません – gualopezb

答えて

0

このボタンは、あなたのアプリをブラウズしているときにユーザーがクリックしてダウンロードしたのと同じように、ファイルをユーザーに送信するrailsアプリケーションのコントローラーアクションにリンクできます。

0

def download 
    send_file 'path_to_your_file',:type=>"application/extension_of_your_file", :x_sendfile=>true 
end 

好きです、あなたのコントローラで何かをこの

<%= link_to "DOWNLOAD", download_path %> 

を追加し、メーラービューでroute.rb

get "controller/action" , as: :download 

に他の方法でこれを行う

あなたは単にパブリックフォルダにファイルを配置し、同じように自分のメーラービューでダウンロードするためのリンクを置くことができます。次回は、あなたがしようとしているかについて、あなたの質問にいくつかのコードを追加してください。また

<%= link_to 'name of button', 'http:// your_website/your_file_name' %> 

かあなたの質問を達成するために何を計画しているのですか?

関連する問題