0

メールの送信にrazorengineを使用しています。センデンは問題ではありませんが、コンテンツはコンテンツ内で/ da / Property / Property / Mail/TellAFriendTextMailとしてのみ表示されます。

private void SendTellAFriendMail(NotificationTellAFriend mailData)
    {

      string textmail = this.GetMailAsText(mailData);
      string htmlmail = this.GetMailAsHTML(mailData);

      MailAddress from = new MailAddress("robot@mail.com", mailData.SenderName);
      MailAddress to = new MailAddress(mailData.receiverMail, mailData.SenderName);

      using (AlternateView htmlview = this.CreateView(htmlmail, "text/html"))
      using (AlternateView textview = this.CreateView(textmail, "text/plain"))
      using (MailMessage email = new MailMessage(from, to))
      {
        email.Subject = string.Format(CultureInfo.InvariantCulture, Resources.Resources._MailSubject, mailData.SenderName);
        email.AlternateViews.Add(textview);
        email.AlternateViews.Add(htmlview);
        email.ReplyToList.Add(new MailAddress(mailData.receiverMail, mailData.SenderName));

        using (SmtpClient client = new SmtpClient())
        {
          client.Send(email);
        }

      }
    }

 private string GetMailAsHTML(NotificationTellAFriend mailData)
    {
      return Razor.Parse(Url.Action("/Property/Mail/TellAFriendTextMail"), mailData);
    }
4

1 に答える 1

1

メソッドの最初の引数はRazor.ParseURLではなく、解析する実際のRazorの内容です。それで:

private string GetMailAsHTML(NotificationTellAFriend mailData)
{
    var razorTemplateFile = Server.MapPath("~/Property/Mail/TellAFriendTextMail.cshtml");
    var razorTemplate = File.ReadAllText(razorTemplateFile);
    return Razor.Parse(razorTemplate, mailData);
}
于 2013-01-14T06:54:36.603 に答える