0

サブスクライブ機能を備えた小さなブログを開発しています。mandrill サービスの bcc メールを介して購読者に過去 1 週間のトップ投稿を通知します。正常に動作しますが、購読解除機能で行き詰まりました。私の知る限り、購読者が受け取るメールは bcc と同じなので、 I かもしれません。それで私の質問は、購読者が購読を解除できるようにする bcc メールを介して、各購読者に固有のリンクを添付するにはどうすればよいですか? ここに私のコードのスニペットがあります:

addresses = subscription_emails.all.pluck(:email)
mail(from: "no-reply@blog.com", bcc: addresses,subject: "Posts of past week")
4

1 に答える 1

0

私があなたの質問を理解している限り、購読解除の URL はメールの内容に記載されています。

それを機能させるには、メールテンプレートに一意の識別子を生成することをお勧めします。これを使用して、購読を解除しているユーザーを識別できます。

チェック: http://guides.rubyonrails.org/action_mailer_basics.htmlポイント 2.1.3 - メーラー ビューを作成します。

テンプレートに次のようなものがあるとしましょう。

<p>
  Here is your email contents
</p>
<p><a href="#{@unsubscribe_url}">Unsubscribe</a></p>

この unsubscribe_url 変数は、次のようなものを生成します。

http://your-domain.com/newsletter/unsubscribe/unique-id-generated-for-the-user

サブスクリプション解除を処理するコントローラーに移動するルートを config/routes.rb ファイルに作成します。

こちらもご覧ください: http://railscasts.com/episodes/312-sending-html-email

編集

残念ながら、Mandrill のドキュメントにあるように、マージ変数と bcc リストのメールを 1 対 1 でマッピングする方法はないと思います。

このようにして、2 つの解決策が考えられます。

a) 各ユーザーに固有の ID は実際にはありませんが、登録解除ページに移動する一般的なリンクがあります。例えば:

http://your-domain.com/newsletter/unsubscribe

これは、その人に電子メール アドレスを書くように求める入力を含むページをレンダリングします。このソリューションを使用すると、次のようなユーザーの悪い行動を考慮する必要があります。

  • 挿入された電子メールはユーザー リストに属していません
  • アリスはボブの電子メールを入力しました

b) mandrill への電子メール要求のロジックを破る。この方法では、一意の ID ログインを保持しますが、メールのリストを bcc に送信する代わりに、メール リクエストを 1 つずつ送信します。

于 2015-11-19T09:27:30.770 に答える