如何使用c#在电子邮件正文中添加按钮和文本框?

时间:2012-12-27 09:49:14

标签: c# asp.net .net

截至目前我正在发送字符串文本作为电子邮件正文。但我应该发送确定,取消按钮和一些text.if用户点击确定需要做一些功能。如果取消需要打开一个文本框。请告诉我。

3 个答案:

答案 0 :(得分:1)

查看here

您应该像这样生成HTML代码:

mm.Body = "<h2>This is an HTML-Formatted Email Send Using the <code>IsBodyHtml</code> Property</h2><p>Isn't HTML <em>neat</em>?</p><p>You can make all sorts of <span style=""color:red;font-weight:bold;"">pretty colors!!</span>.</p>";
mm.IsBodyHtml = true;

答案 1 :(得分:1)

您将无法运行任何脚本,因为现在大多数邮件客户端会阻止此操作。如果您想在电子邮件中加入按钮,则必须插入带有指向 您公开网页 的链接的图片。
要了解是点击该链接的用户,您还应该在网址中包含一些独特的Guid ...
由于现在许多邮件客户端甚至拒绝加载远程图像,您可能需要将图像嵌入电子邮件中。

无论如何,这种“远程回调”的例子可能是这样的:

<a href="http://mywebsite.com/buttonclick.aspx?ClickId=[SomeUniqueGuid]><img src="http://mywebsite.com/image.png"></a>

但只是为了说清楚 - 你有 没有方法 弹出文本框或添加脚本,除非你发明自己的邮件客户端

答案 2 :(得分:0)

我写了一个函数来发送基于HTML的电子邮件。

string mbody可能包含html。其中也可以包括按钮或文本框。 在我的情况下,我使用stringbulder来构建电子邮件的主体。

  private string styleTag = "<head><STYLE TYPE='text/css'>body, input, button{color: 
black;background-color: white;font-family: Verdana,Arial,Helvetica;font-size: x-
small;}p{color: #666666;}h1{color: #666666;font-size: medium;}h2{color: 
black;}table{border-collapse: collapse;border-width: 0;border-spacing: 0;width: 90%;table-
layout: auto;}pre{word-wrap: break-word;font-size: x-small;font-family: 
Verdana,Arial,Helvetica;display: inline;}table.WithBorder{border-style: solid;border-color: 
#F1EFE2;border-width: 1px;border-collapse: collapse;width: 90%;}TD{vertical-align: 
top;font-size: x-small;}TD.PropName{vertical-align: top;font-size: x-small;white-space: 
nowrap;background-color: #FFF;border-top: 1px solid #F1EFE2;}TD.PropValue{font-size: x-
small;border-top: 1px dotted #F1EFE2;}TD.Col1Data{font-size: x-small;border-style: 
solid;border-color: #F1EFE2;border-width: 1px;background: #F9F8F4;width: 
auto;}TD.ColData{font-size: x-small;border-style: solid;border-color: #F1EFE2;border-width:
 1px;}TD.ColDataXSmall{font-size: x-small;border-style: solid;border-color: #F1EFE2;border-
width: 1px;width: 5%;}TD.ColDataSmall{font-size: x-small;border-style: solid;border-color: 
#F1EFE2;border-width: 1px;width: 10%;}TD.ColHeadingXSmall{background-color: #F1EFE2;border-
style: solid;border-color: #F1EFE2;border-width: 1px;font-size: x-small;width: 
5%;}TD.ColHeadingSmall{background-color: #F1EFE2;border-style: solid;border-color: 
#F1EFE2;border-width: 1px;font-size: x-small;width: 10%;}TD.ColHeadingMedium{background:
 #F1EFE2;border-style: solid;border-color: #F1EFE2;border-width: 1px;font-size: x-
small;width: 200px;}TD.ColHeading{font-size: x-small;border-style: solid;border-color: 
#F1EFE2;border-width: 1px;background: #F1EFE2;width: auto;}.Title{width:100%;font-size: 
medium;}.footer{width:100%;font-size: xx-small;}</STYLE></head>";

     public string SendEmail(string mTo, string mSubject, string mBody)
        {
            string host = "xxx";
            string str2 = "xxx";
            string userName = "xxx";
            string password = "xxx";
            SmtpClient client = new SmtpClient(host) {
                Port = 0x1b,
                Credentials = new NetworkCredential(userName, password)
            };
            MailAddress from = new MailAddress(str2, userName, Encoding.UTF8);
            MailAddress to = new MailAddress(mTo);
            MailMessage message = new MailMessage(from, to) {
                IsBodyHtml = true,
                Body = mBody,
                Subject = mSubject
            };
            client.Send(message);
            return "email sent";
        }