我正在使用「System.Net.Mail」在我的代碼中發送電子郵件。它允許電子郵件正文以HTML格式發送。我需要使用我的模型和bootstrap中的數據自定義和裝飾我的電子郵件。使用HTML和模型從MVC定製電子郵件頁面
所以,我在這裏嘗試創建HTML頁面並嘗試將其與Model中的數據集成,然後將HTML頁面作爲字符串傳遞給電子郵件對象的「主體」。
這是否有意義或有任何其他方式可以做到這一點?我想構建一個HTML表格,它根據模型中的數據動態地獲取行。
我正在使用「System.Net.Mail」在我的代碼中發送電子郵件。它允許電子郵件正文以HTML格式發送。我需要使用我的模型和bootstrap中的數據自定義和裝飾我的電子郵件。使用HTML和模型從MVC定製電子郵件頁面
所以,我在這裏嘗試創建HTML頁面並嘗試將其與Model中的數據集成,然後將HTML頁面作爲字符串傳遞給電子郵件對象的「主體」。
這是否有意義或有任何其他方式可以做到這一點?我想構建一個HTML表格,它根據模型中的數據動態地獲取行。
我一直使用這個工具http://aboutcode.net/postal。試一下,它會爲你節省很多編碼。
你有沒有一個可行的例子?不能得到這個工作! – Ponni
通過網站,很容易指南。 –
下面是一個例子。我甚至包含了一些CSS來展示你如何設計你的電子郵件。 「項目」是我循環創建網格的模型。
CSS支持在大多數電子郵件客戶端中受到限制,因此您可能無法使Bootstrap正常工作,但可以嘗試。如果沒有,您仍然可以完成類似Bootstrap的響應式設計。下面的例子保持中心和100%的寬度,因爲頁面調整大小。
var projects = db.Projects.Select(p => new { p.Name, p.Description });
var grid = new StringBuilder();
foreach (var project in projects)
{
grid.Append([email protected]"<tr'>
<td>{project.Name}</td>
<td>{project.Description}</td>
</tr>");
}
var body = [email protected]"
<style>
body {{ color: #444 }}
h2 {{ margin-top: 0; margin-bottom: 0 }}
.container {{ text-align: center }}
table {{ margin-left: auto; margin-right: auto; font-size: 20; width: 100% }}
.heading {{ font-weight: bold; background-color: #f1f4ff }}
td {{ padding-top: 8px; padding-bottom: 8px; padding-left: 16px; padding-right: 16px }}
</style>
<div class='container'>
<h2>Hello from Mail</h2>
<table class='grid' cellpadding='0' cellspacing='0'>
<tr class='heading'>
<td>Project Name</td>
<td>Project Description</td>
</tr>
{grid}
</table>
</div>
";
client.Send(mail);
這會有幫助嗎? https://stackoverflow.com/a/33124638/1658906 http://mehdi.me/generating-html-emails-with-razorengine-introduction/ http://mehdi.me/generating-html-emails-with-razorengine -basic-generating-your-first-email/ – juunas
這個庫被證明是過時的:(沒用的。 – Ponni