我是不是必须手动将 asp.net 4 电子邮件中的信息输入 MS 数据库?
Posted
技术标签:
【中文标题】我是不是必须手动将 asp.net 4 电子邮件中的信息输入 MS 数据库?【英文标题】:Do I have to manually enter info from an asp.net 4 email into an MS Database?我是否必须手动将 asp.net 4 电子邮件中的信息输入 MS 数据库? 【发布时间】:2012-05-15 16:47:48 【问题描述】:我有一个表单电子邮件,asp.net 4.0 / VB / Visual Studio,我希望它自动进入 Microsoft Access DB,而无需我做任何努力。这可能吗?我不是程序员,但这里是电子邮件表单:
<script runat="server"> Protected Sub SubmitForm_Click(ByVal sender As Object, ByVal e As System.EventArgs) If Not Page.IsValid Then Exit Sub Dim SendResultsTo As String = "me@domain.com" Dim smtpMailServer As String = "smtp.domain.com" Dim smtpUsername As String = "me@domain.com" Dim smtpPassword As String = "******" Dim MailSubject As String = "Form Results" Try Dim txtQ As TextBox = Me.FormContent.FindControl("TextBoxQ") If txtQ IsNot Nothing Then Dim ans As String = ViewState("hf1") If ans.ToLower <> txtQ.Text.ToLower Or ans.ToUpper <> txtQ.Text.ToUpper Then Me.YourForm.ActiveViewIndex = 3 Exit Sub End If End If Dim FromEmail As String = SendResultsTo Dim msgBody As StringBuilder = New StringBuilder() Dim sendCC As Boolean = False For Each c As Control In Me.FormContent.Controls Select Case c.GetType.ToString Case "System.Web.UI.WebControls.TextBox" Dim txt As TextBox = CType(c, TextBox) If txt.ID.ToLower <> "textboxq" Then msgBody.Append(txt.ID & ": " & txt.Text & vbCrLf & vbCrLf) End If If txt.ID.ToLower = "email" Then FromEmail = txt.Text End If If txt.ID.ToLower = "subject" Then MailSubject = txt.Text End If Case "System.Web.UI.WebControls.CheckBox" Dim chk As CheckBox = CType(c, CheckBox) If chk.ID.ToLower = "checkboxcc" Then If chk.Checked Then sendCC = True Else msgBody.Append(chk.ID & ": " & chk.Checked & vbCrLf & vbCrLf) End If Case "System.Web.UI.WebControls.RadioButton" Dim rad As RadioButton = CType(c, RadioButton) msgBody.Append(rad.ID & ": " & rad.Checked & vbCrLf & vbCrLf) Case "System.Web.UI.WebControls.DropDownList" Dim ddl As DropDownList = CType(c, DropDownList) msgBody.Append(ddl.ID & ": " & ddl.SelectedValue & vbCrLf & vbCrLf) End Select Next msgBody.AppendLine() msgBody.Append("Browser: " & Request.UserAgent & vbCrLf & vbCrLf) msgBody.Append("IP Address: " & Request.UserHostAddress & vbCrLf & vbCrLf) msgBody.Append("Server Date & Time: " & DateTime.Now & vbCrLf & vbCrLf) Dim myMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage() myMessage.To.Add(SendResultsTo) myMessage.From = New System.Net.Mail.MailAddress(FromEmail) myMessage.Subject = MailSubject myMessage.Body = msgBody.ToString myMessage.IsBodyhtml = False If sendCC Then myMessage.CC.Add(FromEmail) Dim basicAuthenticationInfo As New System.Net.NetworkCredential(smtpUsername, smtpPassword) Dim MailObj As New System.Net.Mail.SmtpClient(smtpMailServer) MailObj.Credentials = basicAuthenticationInfo MailObj.Send(myMessage) Me.YourForm.ActiveViewIndex = 1 Catch Me.YourForm.ActiveViewIndex = 2 End Try End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) If Not Page.IsPostBack Then Dim lbl As Label = Me.FormContent.FindControl("labelq") If lbl IsNot Nothing Then Dim rq(3) As String rq(0) = "Is fire hot or cold?" rq(1) = "Is ice hot or cold?" rq(2) = "Is water wet or dry?" Dim ra(3) As String ra(0) = "hot" ra(1) = "cold" ra(2) = "wet" Dim rnd As New Random Dim rn As Integer = rnd.Next(0, 3) lbl.Text = rq(rn) ViewState("hf1") = ra(rn) End If End If End Sub </script> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> <h1>CONTACT HEALTH
在自己舒适的家中疯狂工作! 输入您的电子邮件地址: * 必需的 * 请输入有效的电子邮件地址。 主题: * 必需的 请在下面输入您的信息: * 必需的 名字: * 必需的 姓氏: * 必需的 电话号码: * 必需的 * 请输入有效的美国电话号码(包括破折号)。 城市: * 必需的 州/省: * 必需的 您的留言已发送。感谢您与我们联系。 由于技术困难,您的消息可能尚未发送。 您没有正确回答反垃圾邮件问题。请返回重试。
当有人填写表格时,我会收到这样一封电子邮件:
电子邮件:rmajeski@yahoo.com
主题:我需要一份工作
消息:我今天想要工作好吗?谢谢J.O.B
名字:Rich
姓:马杰斯基
电话:xxx-xxx-xxxx
城市:曲棍球镇
州:密歇根
浏览器:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 火狐/12.0
IP 地址:108.224.49.14
服务器日期和时间:2012 年 5 月 15 日上午 6:03:33
我怎样才能让它自动进入 Microsoft Access 数据库,而无需我手动执行?任何指导将不胜感激!谢谢!
【问题讨论】:
你必须修改你的页面代码才能实现它,没有自动魔术方法。你必须聘请一名程序员。 我什么都没试过,因为我不知道该怎么做。但我不是编程文盲......我的意思是,如果有人给我看一个教程或告诉我如何用外行的话来做事,我可以弄清楚。但是作为一家初创公司,我没有钱聘请程序员,这就是我承担责任的原因。无论如何,感谢 Loktar 和 Filburt 抽出时间来查看我的问题并提供解决方案。 我的意思是,我创建 ussvision.com 和 healthnutts.com 完全是因为 Stack 的好人帮助我... 【参考方案1】:您可以阅读有关 Office 插件编程的教程。 一种方法是让此加载项查看 Outlook 中的每封传入电子邮件并将字段解析为相应的变量。之后,您可以创建与 MS Access 数据库文件的数据库连接,以使用 SQL-Insert DML 语句插入数据。 我认为这对你来说是最简单的方法,因为编程不需要太多的代码行。但是 MS Outlook 必须运行!
最好的方法当然是在 ASP.NET 中异步创建数据库连接(使用 ODBC)。网上应该有很多教程。
【讨论】:
以上是关于我是不是必须手动将 asp.net 4 电子邮件中的信息输入 MS 数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net mvc 中验证 PayPal 企业电子邮件是不是正确
ASP.NET 4.0尚未在Web服务器上注册。您需要手动将Web服务器配置为使用ASP.NET,这样您的网站才能正确运行。
asp.net 4.0 尚未在服务商注册 您需要手动将web服务器配置为 ASP.NET4.0,这样您的网站才能正常进行。