3

重複の可能性:
メールテンプレートとしてのRazorビュー

ウェブサイトのサービス内からユーザーにメールを送信しています。

これをフォーマットして、具体的な方法で表示されるようにします。

これが私が持っているものです:

<table bgcolor="#FFE680" border="0" cellpadding="0" cellspacing="0" width="100%">
  <tbody>
    <tr>
      <td width="100%" height="51" valign="middle"><h1> <strong>[COMPANY] User ID Reminder </strong></h1></td>
      <td align="right" valign="top" width="8"><img alt="" width="8" height="8" align="top" /></td>
    </tr>

  </tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tbody>
    <tr>
      <td><table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tbody>
          <tr>
            <td align="left" valign="top" width="100%"><table border="0" cellpadding="0" cellspacing="0" width="100%">
              <tbody>
                <tr>
                  <td><table border="0" cellpadding="0" cellspacing="0" width="100%">
                    <tbody>
                      <tr>
                        <td colspan="1" align="left"></td>
                        </tr>
                      <tr>
                        <td align="left" valign="top" width="100%"><p> <br />
                          Dear [USERNAME], </p>
                          <p> In response to your request to be reminded of your User ID, please   find below the information we have on file for you. If you didn't   submit  this request, ignore this email. </p>
                          <table border="0" cellpadding="0" cellspacing="0">
                            <tbody>
                                  <tr>
                                    <td>Your User ID is: </td>
                                    <td>[USERNAME]</td>
                                    </tr>
                                  <tr>
                                    <td>Your registered email address is:  </td>
                                    <td>[EMAIL]</td>
                                  </tr>
                              </tbody>
                            </table>
                          <p> 
                            If you have forgotten your password, you can request it here.<br />
                          </p>
                          <p> 
                            Thank you,<br />[COMPANY]
                          </p></td>
                        </tr>
                      </tbody>
                    </table></td>
                  </tr>
                </tbody>
              </table></td>
          </tr>
          </tbody>
      </table></td>
    </tr>
  </tbody>
</table>

今、私の質問は電子メールの外観についてではありませんが、適切なフィールドに入力しながら、これを電子メールの本文としてどのように配置しますか?

私はそれを文字列としてリソースに入れ、特定の[フィールド]を置き換えるだけだと思いました。これは退屈になり始め、ずさんなように見えました:

var body = SuburbanHUB.Properties.Resources.ForgotPasswordEmailBody.Replace("[USERNAME]", username).Replace("[EMAIL]")...

これを行うためのより良い方法があると確信していますが、私は経験がありません。

===説明===

C#で記述されたWCFサービスを呼び出すためにかみそりを使用しています。呼び出されているサービスは、ビューではなく、電子メールの送信元です。基になるコードとしてC#を使用したMVCでRazorを使用しています。

4

2 に答える 2

1

同様の要件があり、最終的にNVelocityを使用することになり、それは私にとって非常にうまくいきました。ワークスルーhttp://www.codeproject.com/Articles/12751/Template-merging-with-NVelocity-and-ASP-NETについては、この記事を参照してください。速度テンプレート言語に従って、テンプレートのフィールドを変更する必要があります。http://nvelocity.sourceforge.net/からNVelocityをダウンロードします。

于 2012-10-29T19:54:14.780 に答える
1

私は同じことをしようとしている最中です。Razorテンプレートを使用して電子メールを生成しModel、さまざまな変数をすべて含むaを渡して入力します。これにより、RazorとMVCがサポートするすべてのものを含めることができます。これには、ピースから電子メールを作成できる@ifとが含まれます。@Html.Partial

私たちが行った答えは、内部MVC Webサーバーを実行し、モデルをパラメーターとしてWebサーバーからページを要求し、応答テキストをキャプチャすることですが、私の質問には、より自己完結型のバリアントがあります。 て、他の回答やコメントのいずれかがあなたを助けるかどうかを確認してください。

于 2012-10-29T20:36:15.697 に答える