在Asp.Net MVC Razor中将HTML视图作为电子邮件附件发送

时间:2017-06-22 07:03:34

标签: javascript c# jquery asp.net-mvc razor

我目前在Razor ASP.Net MVC工作。在这里,我有HTML view,名为客户付款,它是基于某些计算生成的,RAZOR,并显示在HTML dialog。< / p>

I want to email this View

我想将此Html View作为电子邮件附件发送。但是我在这里感到困惑,我必须将此HTML View转移到.PDF or .jpg中的某些jQuery,然后将其发送到Controller方,或者还有更多有效的方法来做到这一点。

我仍然codedC#发送简单的电子邮件,没有任何附件,但此时却被卡住了。

最好的建议将受到高度赞赏。 : - )

2 个答案:

答案 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>&nbsp;&nbsp;&nbsp;<img src="http://img/phone.png">&nbsp;&nbsp;<span>987654321</span>&nbsp;&nbsp;<img src="http://img/email.jpg">&nbsp;&nbsp;<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>

        &nbsp;&nbsp;
        <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

希望它有所帮助!