0

お問い合わせフォーム(VS 2010 / VB / .net4)を作成し、クライアントがフォームに入力すると、メールが届きます。これは気に入っていますが...。

たとえば、私が受け取った電子メールは次のとおりです。

メール:ivy_league_alum-at-yahoo.com

件名:皆さんはPPTを統合していますか?

メッセージ:ミシガン地域でPPTインテグレーターを探しています。

First_Name:ティム

Last_Name:デュワー

組織:アメリカンアクスル

ブラウザ: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

サーバーの日付と時刻:2012年1月13日11:28:59 AM

これは単にリードを生み出す会社なので、たくさんのメールを受け取り、それらを整理してもらいたいと思います。

Jon Pは、MS Excel(とにかく方法がわからない)の代わりに、データベースを使用して受信するこれらすべての電子メールを収集することを提案しました。そこで、SQLServerExpressをダウンロードしました。だから今私は何をしますか?これらのメールを整理して収集できるように、コードに何を追加する必要があるのか​​、具体的には何をする必要があるのか​​を誰かに教えてもらえますか?ありがとう!

補遺(私はこれが長いことを知っています):

具体的には、私のメールコードは次のとおりです。

<%@ Page Title = "Contact Health Nutts" Language = "VB" MasterPageFile = "〜/ Site.master" AutoEventWireup = "false" CodeFile = "contact.aspx.vb" Inherits = "contact"%> Protected Sub SubmitForm_Click( ByVal sender As Object、ByVal e As System.EventArgs)If Not Page.IsValid Then Exit 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

自分の家の快適さからナッツと仕事を!

メールアドレスを入力してください:
*必須*有効なメールアドレスを入力してください。

件名:
*必須

以下にメッセージを入力してください:*必須


名:
*必須

の姓:
*必須 の

電話番号:
*必須*有効な米国の電話番号(ダッシュを含む)を入力してください。

市:
*必要な

州/県:
*必須






メッセージが送信されました。ご連絡いただきありがとうございます。
技術的な問題により、メッセージが送信されていない可能性があります。スパム対策の質問に正しく答えていませんでした。戻ってもう一度やり直してください。

4

2 に答える 2

2

ajaxも使用している場合は、これが優れたチュートリアルです。

http://dotnetslackers.com/articles/aspnet/Developing-an-AJAX-and-ASP-NET-4-0-Based-Online-E-mail-System-Part1.aspx

于 2012-05-15T08:50:44.017 に答える
2

これを間違った方法でとらないでください。ただし、コーディング能力の欠如についてあなたが言ったことから判断すると、他の誰かにあなたのために仕事をしてもらう方が安くなるかもしれません。有能なコーダーは、約1時間で何かをノックアウトできるはずです。彼がコーヒーを飲みに立ち寄らなければ、おそらくそれよりも短いでしょう。

あなたが本当に本当にそれを自分でやりたいのなら、最初に、あなたはウェブサイトのホスティングパッキングがデータベースを含んでいるかどうかを調べなければならないでしょう。

ローカルマシンでWebサイトをホストしていないと仮定すると、マシンにSQL Expressのバージョンがあると、コードの開発に役立ちますが、コードを展開することはできません。

ただし、それを完全に無視すると、実行したい手順は次のとおりです。

  1. SQLでデータベースを作成してから、関連するデータベーステーブルを作成します
  2. ADO.Netを使用して、Webサイトからデータベースへの接続を作成します
  3. お問い合わせフォームのデータをデータベーステーブルに挿入するコードを作成します

次に、収集されたデータをどのように表示するかを考える必要があるため、何かを作成するか、SQLを学習する必要があります。

始めるのに役立つコードサンプルが必要な場合は、使用している言語(C#またはVB.Netである必要があります)を知る必要があり、お問い合わせフォームのコードを投稿することも役立ちます(明らかに機密情報を削除します)ユーザー名やパスワードなどの詳細)。

編集:

データベースを作成すると、次のスクリプトでSQLExpressの基本的なテーブル構造が得られます。

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でデータベースを右クリックし、[新しいクエリ]をクリックして、上記をウィンドウに貼り付け、[実行]ボタンをクリックしてデータベースを更新すると、テーブルが表示されません。

于 2012-05-15T09:18:38.873 に答える