将div元素发送到电子邮件时丢失样式(C#asp.net)
因此,我发送了一封电子邮件,其中包含了他们所在页面(收据页面)的div元素的内容。在收据页面中,css样式显示得很好。但是,当对象发送到电子邮件时,样式似乎就消失了。它位于单独的页面上,在标题中称为表单(按照通常的方式)。我可以理解为什么会发生这种情况(只是发送要呈现的html,而不是访问css样式),但不知道如何解决它 所以我的问题是,如何在不丢失css样式的情况下发送这个div元素? 以下是我的代码供参考:将div元素发送到电子邮件时丢失样式(C#asp.net),c#,asp.net,html,css,C#,Asp.net,Html,Css,因此,我发送了一封电子邮件,其中包含了他们所在页面(收据页面)的div元素的内容。在收据页面中,css样式显示得很好。但是,当对象发送到电子邮件时,样式似乎就消失了。它位于单独的页面上,在标题中称为表单(按照通常的方式)。我可以理解为什么会发生这种情况(只是发送要呈现的html,而不是访问css样式),但不知道如何解决它 所以我的问题是,如何在不丢失css样式的情况下发送这个div元素? 以下是我的代码供参考: StringWriter sw = new StringWriter( );
StringWriter sw = new StringWriter( );
HtmlTextWriter w = new HtmlTextWriter( sw );
invoice.RenderControl( w ); //invoice is the div id of the element i am sending to email
string s = sw.GetStringBuilder( ).ToString( );
MailMessage message = new MailMessage( );
message.IsBodyHtml = true;
message.To.Add( new MailAddress( Session["eMail"].ToString( ) ) );
message.To.Add( new MailAddress( "email@email.ca" ) );
message.Subject = "extra dimensional stack-overflow";
message.From = new MailAddress( "email@email.ca" );
message.Body = s;
SmtpClient emailClient = new SmtpClient( "localhost", 8025 );
System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential( "blargh", "blargh" );
emailClient.UseDefaultCredentials = false;
emailClient.Credentials = SMTPUserInfo;
电子邮件HTML阅读器需要内联样式的混合,在一些客户机中,还需要基于HTML的样式标记(就像1999年一样)。这很糟糕,但有一个很好的理由:通过引用任何外部资源,可以跟踪用户的行为,并打开潜在的安全漏洞。这就是为什么大多数电子邮件程序在用户单击按钮之前不会加载外部图像。电子邮件客户端不是web浏览器,不应以相同的方式运行 抱歉,电子邮件HTML只要求所有内容都包含在
中(没有
标记,没有脚本,也没有外部资源)
顺便说一句,如果您希望您的电子邮件在所有客户端(包括Outlook和Outlook Express)中都能一致显示,您还必须使用基于表格的布局。糟糕透了,但确实如此。电子邮件HTML阅读器需要混合内联样式,在某些客户端中,还需要基于HTML的样式标记(就像1999年一样)。这很糟糕,但有一个很好的理由:通过引用任何外部资源,可以跟踪用户的行为,并打开潜在的安全漏洞。这就是为什么大多数电子邮件程序在用户单击按钮之前不会加载外部图像。电子邮件客户端不是web浏览器,不应以相同的方式运行 抱歉,电子邮件HTML只要求所有内容都包含在
中(没有
标记,没有脚本,也没有外部资源)
顺便说一句,如果您希望您的电子邮件在所有客户端(包括Outlook和Outlook Express)中都能一致显示,您还必须使用基于表格的布局。很糟糕,但确实如此。要发送html邮件,我要做的是:
要发送html邮件,我要做的是:
发送带有样式表的电子邮件,如下所示
//在发票div中定义样式表//
StringWriter sw = new StringWriter( );
HtmlTextWriter w = new HtmlTextWriter( sw );
invoice.RenderControl( w ); //invoice is the div id of the element i am sending to email
string s = sw.GetStringBuilder( ).ToString( );
MailMessage message = new MailMessage( );
message.IsBodyHtml = true;
message.To.Add( new MailAddress( Session["eMail"].ToString( ) ) );
message.To.Add( new MailAddress( "email@email.ca" ) );
message.Subject = "extra dimensional stack-overflow";
message.From = new MailAddress( "email@email.ca" );
string a,b;
a="<html><body>";
b="</body></html>";
message.Body = a + s + b;
SmtpClient emailClient = new SmtpClient( "localhost", 8025 );
System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential( "blargh", "blargh" );
emailClient.UseDefaultCredentials = false;
emailClient.Credentials = SMTPUserInfo;
StringWriter sw=新的StringWriter();
HtmlTextWriter w=新的HtmlTextWriter(sw);
发票。渲染控制(w)//invoice是我发送到电子邮件的元素的div id
字符串s=sw.GetStringBuilder().ToString();
MailMessage=newmailmessage();
message.IsBodyHtml=true;
message.To.Add(新邮件地址(会话[“eMail”].ToString());
message.To.Add(新邮件地址(“email@email.ca" ) );
message.Subject=“额外维度堆栈溢出”;
message.From=新邮件地址(“email@email.ca" );
a、b串;
a=“”;
b=“”;
消息体=a+s+b;
SmtpClient emailClient=新的SmtpClient(“本地主机”,8025);
System.Net.NetworkCredential SMTPUserInfo=新的System.Net.NetworkCredential(“blargh”、“blargh”);
emailClient.UseDefaultCredentials=false;
emailClient.Credentials=SMTPUserInfo;
发送带有以下样式表的电子邮件//在发票div中定义样式表//
StringWriter sw = new StringWriter( );
HtmlTextWriter w = new HtmlTextWriter( sw );
invoice.RenderControl( w ); //invoice is the div id of the element i am sending to email
string s = sw.GetStringBuilder( ).ToString( );
MailMessage message = new MailMessage( );
message.IsBodyHtml = true;
message.To.Add( new MailAddress( Session["eMail"].ToString( ) ) );
message.To.Add( new MailAddress( "email@email.ca" ) );
message.Subject = "extra dimensional stack-overflow";
message.From = new MailAddress( "email@email.ca" );
string a,b;
a="<html><body>";
b="</body></html>";
message.Body = a + s + b;
SmtpClient emailClient = new SmtpClient( "localhost", 8025 );
System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential( "blargh", "blargh" );
emailClient.UseDefaultCredentials = false;
emailClient.Credentials = SMTPUserInfo;
StringWriter sw=新的StringWriter();
HtmlTextWriter w=新的HtmlTextWriter(sw);
发票。渲染控制(w)//invoice是我发送到电子邮件的元素的div id
字符串s=sw.GetStringBuilder().ToString();
MailMessage=newmailmessage();
message.IsBodyHtml=true;
message.To.Add(新邮件地址(会话[“eMail”].ToString());
message.To.Add(新邮件地址(“email@email.ca" ) );
message.Subject=“额外维度堆栈溢出”;
message.From=新邮件地址(“email@email.ca" );
a、b串;
a=“”;
b=“”;
消息体=a+s+b;
SmtpClient emailClient=新的SmtpClient(“本地主机”,8025);
System.Net.NetworkCredential SMTPUserInfo=新System.Net.Netor