0

我正在 ASP.NET 中创建联系我们网页,用户可以在其中输入他的所有详细信息。当他点击提交按钮时输入详细信息后;作为管理员,他应该收到他进入联系我们页面的所有详细信息,并且他;作为用户应该收到感谢或确认消息。我试图搜索和关注博客的数量,但所有这些博客都解释了如何发送电子邮件。

一旦他/她单击提交按钮,我就可以向用户发送电子邮件,但是我;作为管理员无法接收他在网页中输入的用户信息。

有人可以提供我的示例代码或指导我应该如何在 ASP.NET 和 C# 中完成这项任务。

提前致谢。

4

1 回答 1

0

我就是这样做的。这也包括 ajaxControlToolkit,但您不需要它。但我会推荐必填字段验证器。我有 3 个文本框。第一个是他们的名字,第二个是他们的电子邮件,第三个是他们想要或需要什么的描述。

HTML

<article>
        <p>        
            <asp:Label ID="lblYourName" runat="server" Text="Your Name: ">
            </asp:Label><asp:TextBox ID="tbEmployeeName" runat="server" Width="151px" CausesValidation="true"></asp:TextBox>
            <asp:RequiredFieldValidator ID="rfvEmployeeName" runat="server" ForeColor="red" ErrorMessage="Email is Required!" ControlToValidate="tbEmployeeName"></asp:RequiredFieldValidator>
            <ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
                TargetControlID="tbEmployeeName"
                FilterType="Custom, UppercaseLetters, LowercaseLetters"
                ValidChars=" "/>
        </p>

        <p>        
            <asp:Label ID="lblYourEmailAddress" runat="server" Text="Your E-mail: ">
            </asp:Label><asp:TextBox ID="tbEmployeeEmail" runat="server" Width="150px" CausesValidation="true"></asp:TextBox>
            <asp:RequiredFieldValidator ID="rfvEmployeeEmail" runat="server" ForeColor="red" ErrorMessage="You're Email Address is Required!" ControlToValidate="tbEmployeeEmail"></asp:RequiredFieldValidator>
            <ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server"
                TargetControlID="tbEmployeeEmail"
                FilterType="Custom, UppercaseLetters, LowercaseLetters, Numbers"
                ValidChars=".@"/>
        </p>

        <p>
            Explain why you would like to have an account.
        </p>
        <p>        
            <asp:TextBox ID="tbEmployeeRequest" runat="server" TextMode="MultiLine" Width="250px" CausesValidation="true"></asp:TextBox>
            <asp:RequiredFieldValidator ID="rfvEmployeeRequest" runat="server" ForeColor="red" ErrorMessage="Message is required!" ControlToValidate="tbEmployeeRequest"></asp:RequiredFieldValidator>
            <ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtender2" runat="server"
                TargetControlID="tbEmployeeRequest"
                FilterType="Custom, UppercaseLetters, LowercaseLetters, Numbers"
                ValidChars=". ;!?'" />
        </p>
        <p>        
            <asp:Button ID="btnSubmit" runat="server" Text="Submit" Font-Size="Small" Height="33px" Width="72px" OnClick="btnSubmit_Click" CausesValidation="true"/>

代码背后

protected void btnSubmit_Click(object sender, EventArgs e)
        {
            if (this.Page.IsValid)
            {
                MailMessage msg = new MailMessage();
                HttpContext ctx = HttpContext.Current;
                msg.To.Add(new MailAddress("toEmail@Email.com"));
                msg.From = new MailAddress(tbEmployeeEmail.Text);
                msg.Subject = tbEmployeeName.Text + " requests an account!";
                msg.Priority = MailPriority.High;
                msg.Body = tbEmployeeRequest.Text;

                //CONFIGURE SMTP OBJECT
                SmtpClient smtp = new SmtpClient("mail.yoursmtpclient.com");

                //SEND EMAIL
                smtp.Send(msg);

                tbEmployeeEmail.Text = null;
                tbEmployeeName.Text = null;
                tbEmployeeRequest.Text = null;

                lblMessage.Text = "Your request has been sent. Please wait 2-3 days for a response.";
            }
        }

如您所知,我使用标签告诉他们他们的回复需要几天时间。然后,您可以使用 jQuery Modal 弹出窗口来代替我使用的标签,上面写着谢谢您和您需要的任何其他信息。如果您不知道如何使用 jQuery,这是一个很好的开始方式。http://jqueryui.com/demos/。如果您想发回一封电子邮件,其中包含您想说的任何内容,您可以操作上面的代码来执行此操作。而不是 msg.To.Add(new MailAddress("toEmail@email.com") 你可以放 msg.To.Add(new MailAddress(tbEmployeeEmail.Text); 并将电子邮件发送给他们。我认为(作为最终用户)虽然检查我的电子邮件以查看我是否得到回复,但这会很烦人,我宁愿直接从页面上知道。我希望这会有所帮助!

于 2013-10-04T14:21:47.887 回答