Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET C#在电子邮件中插入Html代码_C#_Html_Asp.net_Email - Fatal编程技术网

ASP.NET C#在电子邮件中插入Html代码

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

我不明白一个事实。。。 我已经创建了一个发送电子邮件的表单,它运行得非常好。 现在我已经用扩展的html的ajax控件工具包扩展了一个文本框,当我收到电子邮件时,我看不到所有的代码。。。我举个例子。 我发了这个:

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密码。我建议您更改密码。