【问题标题】:How can i Insert the whole HTML file with styles when sending email [duplicate]发送电子邮件时如何插入带有样式的整个HTML文件[重复]
【发布时间】:2017-01-07 23:48:36
【问题描述】:

我想发送一封电子邮件。我有我想用来发送电子邮件的 HTML 模板。如果您在系统上注册,我将从文本框中传递一些数据就像带有您的详细信息的确认电子邮件一样。我无法插入或添加格式,因为它给出了错误

这是我所拥有的:

    public void SendingEmails()
    {
      string emailbody = string.Empty;
        string mapfile = HttpContext.Current.Server.MapPath("~/EmailTemplate.htm");

        using (StreamReader reader = new StreamReader(mapfile))
        {
            if (reader == null)
            {
                throw new Exception("File is null");
            }
            emailbody = reader.ReadToEnd();
        }
        emailbody = emailbody.Replace("{Url}", _Url);






        string Username = "********";
        string Password = "********";
        string host = "********";
        string FromEmailAddress = "********";
        string ToEmailAddress = "********";
        string emailBody = string.Empty;

    var _mail = new MailMessage();
        {
            SmtpClient smtp = new SmtpClient();
            smtp.Port = 25;
            smtp.EnableSsl = false;
            smtp.Host = host;
            smtp.Timeout = 8900000;
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new System.Net.NetworkCredential(Username, Password);
            _mail.From = new MailAddress(FromEmailAddress);
            _mail.To.Add(ToEmailAddress);
            _mail.Subject = "Email Confirmation";
            eBody = emailBody.ToString();
            _mail.IsBodyHtml = true;
            smtp.Send(_mail);
        }

    }

【问题讨论】:

  • 您可以将 html 内容放在一个文件中并读取一个变量,然后您可以对其进行操作
  • 显示什么错误?是编译错误吗?
  • 你能给我看一下我到目前为止所做的例子吗?我不知道我该怎么做
  • 我的建议是将 html 模板保存在一个文件中,并在以后及时填充它。您甚至可以按照 razor 模板编写模板并使用 razorengine 填充它
  • @Mr_Hmp 我无法让 html 工作,因为它到处都显示错误

标签: c# html email


【解决方案1】:

问题是因为您在多行中有 HTML,然后在 HTML 中有双引号 "。您可以通过使用 @ 作为多行的字符串格式化程序来解决它,并将 HTML 中的所有双引号更改为 单引号 '或者如果您仍然需要在 HTML 中使用双引号,那么只需 使用反斜杠转义其含义 \"

我已经为你清理了代码。只需将其复制粘贴到您的代码中即可。

string emailBody = @"<div class='WordSection1'>
       < table cellpadding = '0' cellspacing = '0' align = 'left >
                 < tr >
                     < td width = '0' height = '0' ></ td >
                    </ tr >
                    < tr >

                       < td width = '762' height = '1091' style = 'border:1.0pt solid goldenrod;vertical-align:top' >
                             < spanz - index:251658240'>
                               < table width = '90%;' style = 'margin:1em;' >
                                       < tr >
                                           < td >
                                               < div class='shape'>
                                <div><img src = 'cid:imageId' height='50px' style='padding-right:1em; float:right;'></div><p><o:p>&nbsp;</o:p></p>


            <p style = 'font-family:Calibri' >< tr >< td width='50%'><img alt = '' hspace='0' src='' align='baseline' border='0'>
                                    Dear Call Centre,
                               </p>
                               <p><o:p>&nbsp;</o:p></p> 
                               <p style = 'font-family:Calibri' >< tr >< td width='50%'>
                                    This communication serves to notify you that the below claim has been registered on the system:
                               </p>

                                <p><o:p>&nbsp;</o:p></p>    

                                <p><b>Date Submitted</b> : txtDate, 2016</p>
                                <p><b>Insurer</b> : txtMac<span style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                </span></p>

                                <p><o:p>&nbsp;</o:p></p>

                                <p style = 'background:lightsteelblue; width:60%' >< b >
                                    < span style='font-size:12.0pt;color:#b8860b;font-family:' Cambria?,?serif?;?=''>Claim Information</span></b>
                                </p>

        <table class='MsoNormalTable' border='0' cellspacing='0' cellpadding='0' style='border-collapse:collapse;mso-padding-alt:0in 0in 0in 0in'>
        <tr style = 'mso-yfti-irow:0;mso-yfti-firstrow:yes;page-break-inside:avoid' >
        < td width='189' valign='top' style='width:141.75pt;padding:0in 3.4pt 0in 3.4pt'>
        <p><span class='SpellE'>PNumber</span></p>
        </td>
        <td width = '378' valign='top' style='width:283.45pt;padding:0in 3.4pt 0in 3.4pt'>
        <p>txtNumber</p>
        </td>
        </tr>
            <tr style = 'mso-yfti-irow:2;page-break-inside:avoid' >
                < td width='189' valign='top' style='width:141.75pt;padding:0in 3.4pt 0in 3.4pt'>
                <p>Name</p>
                </td>
                <td width = '378' valign='top' style='width:283.45pt;padding:0in 3.4pt 0in 3.4pt'>
                <p>txtName</p>
                </td>
                </tr>
                <tr style = 'mso-yfti-irow:3;page-break-inside:avoid' >
                < td width='189' valign='top' style='width:141.75pt;padding:0in 3.4pt 0in 3.4pt'>
                <p>Broker Email Address</p>
                </td>
                <td width = '378' valign='top' style='width:283.45pt;padding:0in 3.4pt 0in 3.4pt'>
                <p>txtEmail</p>
                </td>
                </tr>
                <tr style = 'mso-yfti-irow:4;page-break-inside:avoid' >
                < td width='189' valign='top' style='width:141.75pt;padding:0in 3.4pt 0in 3.4pt'>
                <p>Tel</p>
                </td>
                <td width = '378' valign='top' style='width:283.45pt;padding:0in 3.4pt 0in 3.4pt'>
                <p>txtTel</p>
                </td>
                </tr>                   
                <tr style = 'mso-yfti-irow:8;page-break-inside:avoid' >
                < td width='189' valign='top' style='width:141.75pt;padding:0in 3.4pt 0in 3.4pt'>
                <p>Incident Date</p>
                </td>
                <td width = '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                < p > txtInceptiodate </ p >
                </ td >
                </ tr >
                < tr style= 'mso-yfti-irow:9;mso-yfti-lastrow:yes;page-break-inside:avoid' >
                < td width= '189' valign= 'top' style= 'width:141.75pt;padding:0in 3.4pt 0in 3.4pt' >
                < p > Range </ p >
                </ td >
                < td width= '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                < p > txtRange </ p >
                </ td >
                </ tr >
                </ table >

                < p >< o:p>&nbsp;</o:p></p>

                <p style = 'background:lightsteelblue; width:60%' >< b >< span style='font-size:
                12.0pt;color:#b8860b;font-family:' Cambria?,?serif?;?=''>The
                Insured<o:p></o:p></span></b></p>

                <table class='MsoNormalTable' border='0' cellspacing='0' cellpadding='0' style='border-collapse:collapse;mso-padding-alt:0in 0in 0in 0in'>
                <tr style = 'mso-yfti-irow:0;mso-yfti-firstrow:yes;page-break-inside:avoid' >
                < td width='189' valign='top' style='width:141.75pt;padding:0in 3.4pt 0in 3.4pt'>
                <p>Insured Name</p>
                </td>
                <td width = '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                < p > NOC N DROP</p>
                </td>
                </tr>
                <tr style = 'mso-yfti-irow:1;page-break-inside:avoid' >
                < td width= '189' valign= 'top' style= 'width:141.75pt;padding:0in 3.4pt 0in 3.4pt' >
                < p > Contact Person</p>
                </td>
                <td width = '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                < p >< span class='SpellE'>N</span></p>
                </td>
                </tr>
                <tr style = 'mso-yfti-irow:2;page-break-inside:avoid' >
                < td width='189' valign='top' style='width:141.75pt;padding:0in 3.4pt 0in 3.4pt'>
                <p>Identity Number</p>
                </td>
                <td width = '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                < p > 0 </ p >
                </ td >
                </ tr >
                < tr style= 'mso-yfti-irow:3;page-break-inside:avoid' >
                < td width= '189' valign= 'top' style= 'width:141.75pt;padding:0in 3.4pt 0in 3.4pt' >
                < p > Suburb </ p >
                </ td >
                < td width= '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                < p > George, George, Western Cape</p>
                </td>
                </tr>
                <tr style = 'mso-yfti-irow:4;page-break-inside:avoid' >
                < td width= '189' valign= 'top' style= 'width:141.75pt;padding:0in 3.4pt 0in 3.4pt' >
                < p >< span class='SpellE'>Fitment</span> Branch</p>
                </td>
                <td width = '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                   < p > Wise Cracks</p>
                   </td>
                </tr>
                <tr style = 'mso-yfti-irow:5;page-break-inside:avoid' >
                   < td width= '189' valign= 'top' style= 'width:141.75pt;padding:0in 3.4pt 0in 3.4pt' >
                   < p > Cellphone Numbers</p>
                   </td>
                <td width = '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                   < p > 0413740740 </ p >
                   </ td >
                   </ tr >
                   < tr style= 'mso-yfti-irow:6;page-break-inside:avoid' >
                   < td width= '189' valign= 'top' style= 'width:141.75pt;padding:0in 3.4pt 0in 3.4pt' >
                   < p > Business Number</p>
                   </td>
                <td width = '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                   < p > 0413740740 </ p >
                   </ td >
                   </ tr >
                   < tr style= 'mso-yfti-irow:7;mso-yfti-lastrow:yes;page-break-inside:avoid' >
                   < td width= '189' valign= 'top' style= 'width:141.75pt;padding:0in 3.4pt 0in 3.4pt' >
                   < p > Home Number</p>
                   </td>
                <td width = '378' valign= 'top' style= 'width:283.45pt;padding:0in 3.4pt 0in 3.4pt' >
                   < p > 0448751000 </ p >
                   </ td >
                   </ tr >
                   </ table >
                   </ table >
                   </ div > '";

【讨论】:

  • 感谢您的帮助。它正在发送只有主题的空白电子邮件
【解决方案2】:

这是一团糟。

首先,您需要去除所有换行符的 HTML 代码,并将其放在一行中。

接下来,您将希望通过在字符串中的每个引号实例前添加反斜杠来转义字符串。 (这将阻止编译器认为你已经结束了你的字符串)。

查看示例:

var escapedString = "The woman said: \"Hello, young man.\"";

然后,您将需要使用某种形式的字符串格式来将所有其他变量包含在 HTML 字符串中。 (我推荐字符串插值)

【讨论】:

    猜你喜欢
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 2015-08-04
    相关资源
    最近更新 更多