簡體   English   中英

如何使此asp.net電子郵件進入數據庫?

[英]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版本將有助於您開發代碼,但您將無法部署該代碼。

但是,完全忽略了您要執行的步驟:

  1. 用SQL創建數據庫,然后創建相關的數據庫表
  2. 使用ADO.Net創建從網站到數據庫的連接
  3. 創建代碼以將聯系表單數據插入數據庫表

然后,您需要考慮一旦收集到數據后將如何查看數據,因此您將不得不寫一些東西或學習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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM