Asp.net

ASP.NET MVC:如何使用控制器發送 html 電子郵件?

  • May 15, 2019

使用 asp.net 發送自定義 html 電子郵件的最簡單方法是什麼?

我想理想情況下我想通過電子郵件發送 html,而不是像往常一樣通過 ActionResult 將其返回給瀏覽器。通過這種方式,我可以將電子郵件建構為視圖,通過模型為其提供數據,然後使用標準的 .NET 電子郵件內容觸發它。

這樣做可行/方法嗎?

謝謝,

這篇部落格文章有一個很好的解決方案,可以將視圖呈現為字元串,以便您可以通過電子郵件發送它。

/// Static Method to render string - put somewhere of your choosing
public static string RenderPartialToString(string controlName, object viewData)
{
    ViewDataDictionary vd = new ViewDataDictionary(viewData);
    ViewPage vp = new ViewPage { ViewData = vd };
    Control control = vp.LoadControl(controlName);

    vp.Controls.Add(control);

    StringBuilder sb = new StringBuilder();
    using (StringWriter sw = new StringWriter(sb))
    {
        using (HtmlTextWriter tw = new HtmlTextWriter(sw))
        {
            vp.RenderControl(tw);
        }
    }

    return sb.ToString();
}

引用自:https://stackoverflow.com/questions/1637951