我目前在Razor ASP.Net MVC
工作。在这里,我有HTML view
,名为客户付款,它是基于某些计算生成的,RAZOR
,并显示在HTML dialog
。< / p>
我想将此Html View
作为电子邮件附件发送。但是我在这里感到困惑,我必须将此HTML View
转移到.PDF or .jpg
中的某些jQuery
,然后将其发送到Controller
方,或者还有更多有效的方法来做到这一点。
我仍然coded
在C#
发送简单的电子邮件,没有任何附件,但此时却被卡住了。
最好的建议将受到高度赞赏。 : - )
答案 0 :(得分:1)
作为普通邮件,您必须发送邮件内容,如下所示
您的c#代码。
string _FilePath = HttpContext.Server.MapPath("Activation.txt");
StreamReader sr = new StreamReader(_FilePath);
string body = sr.ReadToEnd();
sr.Close();
sr.Dispose();
将以上正文发送到电子邮件正文
你的Activation.txt文件代码将是一个模板,如下面的正文标记
<body style="margin: 1% 10%;">
<table style="position:relative;background-color: whitesmoke;padding-bottom: 20px;text-align: center;width: 100%;">
<tbody class="">
<tr class="">
<td style="position:relative;top:20px;padding-left: 25px;padding-right: 25px;margin-right: auto;margin-left: auto;" width="400" align="center" bgcolor="whiteSmoke">
<img src="[HLINK]" height="70" width="150" alt="image cannot displayed ">
</td>
</tr>
<tr>
<td width="400" align="center" bgcolor="whiteSmoke"></td>
</tr>
<tr>
<td align="center" style="position: relative; top: 11px; padding-left: 25px; padding-right: 25px; margin-right: auto; margin-left: auto;" width="470" bgcolor="whitesmoke">
<h2 style="
color:#f44336;
font-family: WeblySleek UI,Segoe UI,Helvetica Neue,Arial,sans-serif">
Hey thanks for joining<h2 /> <h4 style="font-family: WeblySleek UI,Segoe UI,Helvetica Neue,Arial,sans-serif;">Welcome to Portal! Before you get started, please verify your email address below </h4>
</td>
</tr>
<tr bgcolor="whitesmoke" style="position:relative;top:9px;">
<td align="center" style="position:relative;top:-4px;padding-left: 25px;padding-right: 25px;margin-right: auto;margin-left: auto;">
<a style="position:relative;display: block;width:150px;height: 20px;text-align:center; text-decoration:none;background:#f44336;padding:10px;border-radius: 5px;color: white;font-family: WeblySleek UI,Segoe UI,Helvetica Neue,Arial,sans-serif;" href="[HLink]">Verify Email Address</a>
</td>
</tr>
<tr>
<td style="position:relative;top:3px;padding-left: 25px;padding-right: 25px;margin-right: auto;margin-left: auto;" bgcolor="whitesmoke" align="center" width="400">
<span style="padding-left:0.3cm;font-family: WeblySleek UI,Segoe UI,Helvetica Neue,Arial,sans-serif;">Thank you for visiting Us. It is the ultimate gift of choice.You can send to a friend or loved one with a selection of brands to pick from in various categories such as fashion, beauty, sports, food, entertainment etc. <span>
</td>
</tr>
<tr>
<td style="position:relative;padding-left: 25px;padding-right: 25px;margin-right: auto;margin-left: auto;" bgcolor="whitesmoke">
<h2 style="color:#f44336;font-family: WeblySleek UI,Segoe UI,Helvetica Neue,Arial,sans-serif;" align="center">Our Most Celebrated Brands</h2>
</tr>
<tr>
<td style="position:relative;top:-2px;padding-left: 25px;padding-right: 25px;margin-right: auto;margin-left: auto;" align="center" bgcolor="whitesmoke" width="400" style="padding:10px;">
<b style="font-family: WeblySleek UI,Segoe UI,Helvetica Neue,Arial,sans-serif;">Contact Us:</b> <img src="http://img/phone.png"> <span>987654321</span> <img src="http://img/email.jpg"> <span styl="font-family: WeblySleek UI,Segoe UI,Helvetica Neue,Arial,sans-serif;">help@help.com</span>
</td>
</tr>
<tr>
<td style="background-color:whitesmoke;position:relative;text-align: center;">
<span>
<a style="position:relative;padding:10px 30px;text-align:center; text-decoration:none;background:#4e69a2;border-radius: 5px;color: white;font-family: WeblySleek UI,Segoe UI,Helvetica Neue,Arial,sans-serif;" href="#">Facebook</a>
<a style="position:relative;padding:10px 30px;text-align:center;text-decoration:none;background:#c32f10;border-radius: 5px;color: white;font-family: WeblySleek UI,Segoe UI,Helvetica Neue,Arial,sans-serif;" href="#">Google</a>
</span>
</td>
</tr>
</tbody>
</table>
</body>
您还可以动态添加/替换要在电子邮件中发送的数据 在后端添加以下代码
body = body.Replace("[HLink]", YOUR-DATA);
答案 1 :(得分:0)
首先使用Rotativa将您的视图转换为Pdf,然后将其作为附件发送。
这是将视图转换为PDF的方法
public void SenRequestByEmail()
{
string ReqId="CT001";
try
{
using (var stream = new MemoryStream())
{
//methodto bind details to your model
var res = dealerService.BindReqToPrint(ReqId);
//_PrintActivationRequest is your View name here and res is the object of the model you are using at your view
ViewAsPdf pdf = new ViewAsPdf("_PrintActivationRequest", res) { FileName = "DeviceActivationRequest.pdf" };
//convert the pdf into array of bytes
byte[] bytes = pdf.BuildPdf(this.ControllerContext);
string fileName = string.Format("DeviceActivationRequest_{0}.pdf", DateTime.Now.ToString("dd_MMM_yy_hh:mm"));
SendDeviceActivationRequest(new MemoryStream(bytes), fileName );
}
}
catch (Exception ex)
{
}
}
发送电子邮件的方法。
public void SendDeviceActivationRequest(Stream ms, string fileName )
{
//Here write your code to send Email and attach the pdf file as shown in below code.
MailMessage mail = new MailMessage();
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(ms,fileName , "application/pdf");
mail.Attachments.Add(attachment);
}
将您的视图转换为Pdf Follow this Link
希望它有所帮助!