我有一个联系表格(VS 2010 / VB / .net4),当客户填写表格时,我收到了一封电子邮件 - 我喜欢,但是....
例如,这是我收到的一封电子邮件:
电子邮件:ivy_league_alum-at-yahoo.com
主题:你们整合PPT吗?
消息:我正在密歇根地区寻找PPT集成商。
First_Name:Tim
Last_Name:Dewar
组织:American Axle
浏览器: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
这只是一家引领潮流的公司,所以我们会收到很多电子邮件,我们会希望它们有条理。
Jon P建议我使用数据库收集我收到的所有这些电子邮件,而不是MS Excel(我不知道该怎么办)。所以我下载了SQL Server Express。那我现在该怎么办?有人可以告诉我,我必须添加到代码中,具体来说,或者我必须做什么,这样我才能以有条理的方式收集这些电子邮件?谢谢!
附录(我知道这很长):
具体来说,我的电子邮件地址是:
<%@ 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) 如果不是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
来自您自己家的舒适的坚果和工作!
输入您的电子邮件地址:
*必填 * 请输入有效的电子邮件地址。
主题:
*必填
请在下面输入您的消息: *必填
名字:
*必填
姓氏:
*必填
电话号码:
*必填 *请输入有效的美国电话号码(包括破折号码)。
城市:
*必填
州/省:
*必填
您的留言已发送。感谢您与我们联系。
由于技术问题,您的邮件可能尚未发送。 您没有正确回答反垃圾邮件问题。请返回重试。
答案 0 :(得分:2)
如果你也使用ajax,这是一个很好的教程。
答案 1 :(得分:2)
不要以错误的方式采取这种做法,但根据你所说的关于缺乏编码能力的判断来判断,让别人为你做这项工作可能会更便宜。一个称职的程序员应该能够在大约一个小时内为你敲出一些东西,如果他不停下来喝咖啡可能会更少。
如果你真的真的想自己做,那么首先,你必须要知道网站的托管包装是否包含数据库。
假设您没有在本地计算机上托管网站,那么在您的计算机上安装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中的数据库,单击New Query,将上面的内容粘贴到窗口中,然后点击Execute按钮,刷新数据库,你就不应该看到该表。