2

フォームの電子メール、asp.net 4.0 / VB / Visual Studioがあり、何の努力もせずに自動的にMicrosoftAccessDBに入れたいと思っています。これは可能ですか?私はプログラマーではありませんが、フォームの電子メールは次のとおりです。

<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

件名:仕事が必要です

メッセージ:今日は仕事をしたいですか?JOBありがとうございます

First_Name:リッチ

Last_Name:Majeski

電話番号:xxx-xxx-xxxx

市:ホッケータウン

州:ミシガン

ブラウザ:Mozilla / 5.0(Windows NT 6.1; WOW64; rv:12.0)Gecko / 20100101 Firefox / 12.0

IPアドレス:108.224.49.14

サーバーの日付と時刻:2012年5月15日6:03:33 AM

手動で行うことなく、これをMicrosoft Access DBに自動的に入れるにはどうすればよいですか?どんな指導も本当にありがたいです!ありがとう!

4

1 に答える 1

1

Office アドイン プログラミングに関するチュートリアルを読むことができます。1 つの方法は、このアドインで Outlook のすべての受信メールを調べ、フィールドを対応する変数に解析することです。その後、MS Access データベース ファイルへのデータベース接続を作成して、SQL-Insert DML ステートメントでデータを挿入できます。プログラミングにはそれほど多くのコード行が必要ないため、これが最も簡単な方法だと思います。ただし、MS Outlook が実行されている必要があります。

もちろん、最良の方法は、ASP.NET で (ODBC を使用して) データベース接続を非同期的に作成することです。そのオンラインには多くのチュートリアルがあるはずです。

于 2012-05-22T11:42:59.910 に答える