ASP.NET C#在电子邮件中插入Html代码
我不明白一个事实。。。 我已经创建了一个发送电子邮件的表单,它运行得非常好。 现在我已经用扩展的html的ajax控件工具包扩展了一个文本框,当我收到电子邮件时,我看不到所有的代码。。。我举个例子。 我发了这个:ASP.NET C#在电子邮件中插入Html代码,c#,html,asp.net,email,C#,Html,Asp.net,Email,我不明白一个事实。。。 我已经创建了一个发送电子邮件的表单,它运行得非常好。 现在我已经用扩展的html的ajax控件工具包扩展了一个文本框,当我收到电子邮件时,我看不到所有的代码。。。我举个例子。 我发了这个: LA QUALITA'ALPITOUR 在电子邮件中我只看到粗体的文字。。。所有其他代码都已编写且可见。。。为什么? 我希望我已经很好地解释了我的问题。。。我不是英语,我写得不太好 如果需要,这是我的代码隐藏: protected void Btn_SendMail_Click(obj
LA QUALITA'ALPITOUR
在电子邮件中我只看到粗体的文字。。。所有其他代码都已编写且可见。。。为什么?
我希望我已经很好地解释了我的问题。。。我不是英语,我写得不太好
如果需要,这是我的代码隐藏:
protected void Btn_SendMail_Click(object sender, EventArgs e)
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress("danieleluciani92@gmail.com");
msg.To.Add("danieleluciani92@gmail.com");
msg.Subject = txtSubject.Text;
msg.IsBodyHtml = true;
msg.Body = txtBody.Text;
SmtpClient sc = new SmtpClient("smtp.gmail.com");
sc.Port = 25;
sc.Credentials = new NetworkCredential("danieleluciani92@gmail.com", "Dead2006!");
sc.EnableSsl = true;
sc.Send(msg);
Response.Write("<script>alert('ennamo');</script>");
}
protectedvoid Btn\u SendMail\u单击(对象发送者,事件参数e)
{
MailMessage msg=新的MailMessage();
msg.From=新邮件地址(“danieleluciani92@gmail.com");
msg.To.Add(“danieleluciani92@gmail.com");
msg.Subject=txtSubject.Text;
msg.IsBodyHtml=true;
msg.Body=txtBody.Text;
SmtpClient sc=新的SmtpClient(“smtp.gmail.com”);
sc.端口=25;
sc.凭据=新的网络凭据(“danieleluciani92@gmail.com","死亡2006",;
sc.enablesl=true;
sc.Send(msg);
响应。写(“警报('ennamo');”;
}
这是我的html/asp代码:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<span class="fontS">A:
<asp:TextBox ID="txtTo" runat="server" Font-Size="X-Small" ReadOnly="True">Tutti Gli Utenti</asp:TextBox>
<br />
Oggetto:
<asp:TextBox ID="txtSubject" runat="server" Font-Size="X-Small" /><br />
<asp:ScriptManager ID="ScriptManager1" runat="server" />
</span>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<span class="fontS">Tipo di Email:</span><asp:DropDownList ID="DropDownList1" runat="server" Font-Size="X-Small" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Selected="True">Testo Libero</asp:ListItem>
<asp:ListItem>Email Con Offerte</asp:ListItem>
</asp:DropDownList>
<br />
<asp:CheckBoxList ID="CheckBoxList1" runat="server" Visible="False" AutoPostBack="True" OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged">
</asp:CheckBoxList>
<br />
<asp:TextBox ID="txtBody" runat="server" Height="550px" TextMode="MultiLine" Width="900px" />
<asp:HtmlEditorExtender ID="txtBody_HtmlEditorExtender" runat="server" TargetControlID="txtBody" EnableSanitization="False">
</asp:HtmlEditorExtender>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<asp:Button ID="Btn_SendMail" runat="server" OnClick="Btn_SendMail_Click" Text="Invia" /><br />
A:
图蒂·格利·乌蒂蒂
奥格托:
Tipo di电子邮件:
自由测试
电子邮件报价
谢谢你的回答 您需要将电子邮件的内容类型定义为
text/html
,使用AlternateView
,您可以将电子邮件同时作为文本和html发送。您只需添加text/html
的ContentType
作为备用视图,如下所示:
protected void Btn_SendMail_Click(object sender, EventArgs e)
{
MailMessage msg = new MailMessage();
ContentType mimeType = new System.Net.Mime.ContentType("text/html");
// Decode the html in the txtBody TextBox...
string body = HttpUtility.HtmlDecode(txtBody.Text);
AlternateView alternate = AlternateView.CreateAlternateViewFromString(body, mimeType);
msg.AlternateViews.Add(alternate);
msg.From = new MailAddress("danieleluciani92@gmail.com");
msg.To.Add("danieleluciani92@gmail.com");
msg.Subject = txtSubject.Text;
msg.IsBodyHtml = true;
msg.Body = body;
SmtpClient sc = new SmtpClient("smtp.gmail.com");
sc.Port = 25;
sc.Credentials = new NetworkCredential("danieleluciani92@gmail.com", "Dead2006!");
sc.EnableSsl = true;
sc.Send(msg);
Response.Write("<script>alert('ennamo');</script>");
}
protectedvoid Btn\u SendMail\u单击(对象发送者,事件参数e)
{
MailMessage msg=新的MailMessage();
ContentType mimeType=new System.Net.Mime.ContentType(“text/html”);
//解码txtBody文本框中的html。。。
string body=HttpUtility.HtmlDecode(txtBody.Text);
AlternateView alternate=AlternateView.CreateAlternateView-FromString(正文,mimeType);
msg.AlternateViews.Add(alternate);
msg.From=新邮件地址(“danieleluciani92@gmail.com");
msg.To.Add(“danieleluciani92@gmail.com");
msg.Subject=txtSubject.Text;
msg.IsBodyHtml=true;
msg.Body=Body;
SmtpClient sc=新的SmtpClient(“smtp.gmail.com”);
sc.端口=25;
sc.凭据=新的网络凭据(“danieleluciani92@gmail.com","死亡2006",;
sc.enablesl=true;
sc.Send(msg);
响应。写(“警报('ennamo');”;
}
您需要将电子邮件的内容类型定义为text/html
,使用AlternateView
,您可以将电子邮件同时作为文本和html发送。您只需添加text/html
的ContentType
作为备用视图,如下所示:
protected void Btn_SendMail_Click(object sender, EventArgs e)
{
MailMessage msg = new MailMessage();
ContentType mimeType = new System.Net.Mime.ContentType("text/html");
// Decode the html in the txtBody TextBox...
string body = HttpUtility.HtmlDecode(txtBody.Text);
AlternateView alternate = AlternateView.CreateAlternateViewFromString(body, mimeType);
msg.AlternateViews.Add(alternate);
msg.From = new MailAddress("danieleluciani92@gmail.com");
msg.To.Add("danieleluciani92@gmail.com");
msg.Subject = txtSubject.Text;
msg.IsBodyHtml = true;
msg.Body = body;
SmtpClient sc = new SmtpClient("smtp.gmail.com");
sc.Port = 25;
sc.Credentials = new NetworkCredential("danieleluciani92@gmail.com", "Dead2006!");
sc.EnableSsl = true;
sc.Send(msg);
Response.Write("<script>alert('ennamo');</script>");
}
protectedvoid Btn\u SendMail\u单击(对象发送者,事件参数e)
{
MailMessage msg=新的MailMessage();
ContentType mimeType=new System.Net.Mime.ContentType(“text/html”);
//解码txtBody文本框中的html。。。
string body=HttpUtility.HtmlDecode(txtBody.Text);
AlternateView alternate=AlternateView.CreateAlternateView-FromString(正文,mimeType);
msg.AlternateViews.Add(alternate);
msg.From=新邮件地址(“danieleluciani92@gmail.com");
msg.To.Add(“danieleluciani92@gmail.com");
msg.Subject=txtSubject.Text;
msg.IsBodyHtml=true;
msg.Body=Body;
SmtpClient sc=新的SmtpClient(“smtp.gmail.com”);
sc.端口=25;
sc.凭据=新的网络凭据(“danieleluciani92@gmail.com","死亡2006",;
sc.enablesl=true;
sc.Send(msg);
响应。写(“警报('ennamo');”;
}
如果您的电子邮件程序(用于查看电子邮件)理解HTML消息,则不会看到所有HTML标记-它将用于呈现图像内容。如果您的电子邮件程序(用于查看电子邮件)理解HTML消息,然后你将看不到所有的HTML标记-它将用于呈现图像的内容。感谢你的回答,我会问你:CreateAlternateViewFromString(body,mimeType)解释OP的代码和你的建议之间的差异,这将是一个很好的答案,并帮助可能面临类似问题的未来读者。@DanieleNekoLuciani,你不应该收到错误信息。确保您的代码与我发布的代码完全相同。我更新了我的答案,并做了一些解释。试着在代码中对html进行编码,而不是从txtBody.Text获取html,然后看看它是否有效。@DanieleNekoLuciani,顺便说一句,你在代码中暴露了你的gmail密码。我建议您更改密码。谢谢您的回答,我想问您:CreateAlternateViewFromString(body,mimeType)解释OP代码和您的建议之间的区别,这将是一个很好的答案,并帮助可能面临类似问题的未来读者。@DanieleNekoLuciani,你不应该收到那个错误信息。确保您的代码与我发布的代码完全相同。我更新了我的答案,并做了一些解释。试着在代码中对html进行编码,而不是从txtBody.Text获取html,然后看看它是否有效。@DanieleNekoLuciani,顺便说一句,你在代码中暴露了你的gmail密码。我建议您更改密码。