[英]How do I make this asp.net email go to a database?
我有一個聯系表格(VS 2010 / VB / .net4),當客戶填寫表格時,我收到了一封電子郵件-我喜歡,但是....
例如,這是我收到的電子郵件:
電子郵件:ivy_league_alum-at-yahoo.com
主題:你們是否集成了PPT?
消息:我正在尋找密歇根州的PPT集成商。
名:Tim
姓:杜瓦瓶
機構:美國車橋
瀏覽器:Mozilla / 5.0(Windows NT 5.1)AppleWebKit / 535.7(KHTML,例如Gecko)Chrome / 16.0.912.75 Safari / 535.7
IP地址:184.60.79.96
服務器日期和時間:1/13/2012 11:28:59 AM
這只是一家產生潛在客戶的公司,所以我們會收到很多電子郵件,我們希望它們井井有條。
Jon P建議我使用數據庫來收集我收到的所有這些電子郵件,而不是MS Excel(無論如何我都不知道該如何做)。 因此,我下載了SQL Server Express。 那么,現在我該怎么辦? 有人可以告訴我我必須在代碼中添加什么,或者我必須做什么,以便我可以有組織地收集這些電子郵件嗎? 謝謝!
附錄(我知道這很長):
具體來說,我的電子郵件代碼是:
<%@頁面標題=“ Contact Health Nutts”語言=“ VB” MasterPageFile =“〜/ Site.master” AutoEventWireup =“ false” CodeFile =“ contact.aspx.vb” Inherits =“ contact”%>受保護的子SubmitForm_Click( ByVal發件人作為對象,ByVal e作為System.EventArgs),如果不是Page.IsValid,則退出Sub
Dim SendResultsTo As String = "jason.weber-at-healthynutts.com" Dim smtpMailServer As String = "smtp.healthynutts.com" Dim smtpUsername As String = "jason.weber-at-healthynutts.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
從自己舒適的家中開始吧!
輸入您的電子郵件地址:
*必填*請輸入有效的電子郵件地址。
學科:
*必填
請在下面輸入您的信息:*必填
名字:
*必填
姓:
*必填
電話號碼:
*必填*請輸入有效的美國電話號碼(包括破折號)。
市:
*必填
州/省:
*必填
您的留言已發送。 感謝您與我們聯系。
由於技術困難,您的消息可能尚未發送。 您沒有正確回答反垃圾郵件問題。 請返回重試。
不要以這種錯誤的方式來做,但是根據您對缺乏編碼能力的看法來判斷,這可能會讓您便宜一些,讓其他人來為您工作。 能干的編碼員應該能夠在一個小時左右為您解決問題,如果他不停下來喝咖啡的話,可能會更少。
如果您確實真的想自己做,那么首先,您將必須確定該網站的托管包裝中是否包含數據庫。
假設您不在本地計算機上托管網站,那么在計算機上安裝SQL Express版本將有助於您開發代碼,但您將無法部署該代碼。
但是,完全忽略了您要執行的步驟:
然后,您需要考慮一旦收集到數據后將如何查看數據,因此您將不得不寫一些東西或學習SQL。
如果您想要一些代碼示例來幫助您入門,那么我們需要知道您使用的是哪種語言(應該是C#或VB.Net),並且發布聯系表單的代碼也將有所幫助(顯然刪除任何敏感信息詳細信息,例如用戶名和密碼)。
編輯:
創建數據庫后,此腳本將為您提供SQL Express中的基本表結構:
CREATE TABLE [dbo].[tblEmails](
[EmailID] [int] IDENTITY(1,1) NOT NULL,
[EmailAddress] [nvarchar](200) NOT NULL,
[Subject] [nvarchar](200) NOT NULL,
[Message] [nvarchar](max) NOT NULL,
[FirstName] [nvarchar](50) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[PhoneNumber] [nvarchar](20) NOT NULL,
[City] [nvarchar](50) NOT NULL,
[State] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_tblEmails2] PRIMARY KEY CLUSTERED
(
[EmailID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
要使用它,請右鍵單擊SQL Express中的數據庫,單擊“新建查詢”,將以上內容粘貼到窗口中,然后單擊“執行”按鈕,刷新數據庫,您將不會看到該表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.