在ASP.NET中发送和接收电子邮件

时间:2013-10-03 22:00:28

标签: asp.net email c#-4.0 smtp

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分: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模态弹出窗口来表示感谢你以及你需要的任何其他信息。如果您不知道如何使用jQuery,这是一个很好的开始。 http://jqueryui.com/demos/。如果您想发回一封电子邮件,说明您要说的任何内容,您可以操纵上面的代码来执行此操作。您可以将msg.To.Add(新邮件地址(tbEmployeeEmail.Text))放入msg.To.Add(新邮件地址(“toEmail@email.com”);并将电子邮件发送给他们。我认为(作为最终用户)虽然要查看我的电子邮件,看看我是否得到了回复,但这很烦人,我宁愿直接从页面上知道。我希望这有帮助!