' *** This is the program to save in the configurator emails sent/recieved ' to/from customers that are in the configurator database ' Check to see if this email is from a customer in the configurator database Private Function IsConfigCustomer(strEmail As String) As Integer 'On Error GoTo E Dim Conn As ADODB.Connection Set Conn = New ADODB.Connection MM_MyConn_STRING = "Provider=SQLOLEDB.1;User Id=sa;Initial Catalog=Products;Data Source=glacier2" Conn.ConnectionString = MM_MyConn_STRING Conn.Open If strEmail = "" Or InStr(UCase(strEmail), "@sportsmanager.us") <> 0 Then IsConfigCustomer = 0 Conn.Close Exit Function End If Dim RecConfigCust As ADODB.Recordset Set RecConfigCust = New ADODB.Recordset RecConfigCust.Open "Select CustID From Login Where Email='" & strEmail & "' Or SecEmail='" & strEmail & "'", Conn If RecConfigCust.EOF Then IsConfigCustomer = 0 RecConfigCust.Close Set RecConfigCust = Nothing Conn.Close Exit Function Else IsConfigCustomer = RecConfigCust("CustID") RecConfigCust.Close Set RecConfigCust = Nothing Conn.Close Exit Function End If Set RecConfigCust = Nothing Conn.Close Exit Function E: MsgBox ("Error (" & Err.Description & ")... contact Michael") End Function ' Check to see if this email has already been inserted Public Function EmailInserted(strEntryID As String) As Boolean 'On Error GoTo E Dim Conn As ADODB.Connection Set Conn = New ADODB.Connection MM_MyConn_STRING = "Provider=SQLOLEDB.1;User Id=sa;Initial Catalog=Products;Data Source=glacier2" Conn.ConnectionString = MM_MyConn_STRING Conn.Open Dim RecEmail As ADODB.Recordset Set RecEmail = New ADODB.Recordset RecEmail.Open "Select OutlookEntryID From Comments Where OutlookEntryID='" & strEntryID & "'", Conn If RecEmail.EOF Then EmailInserted = False Set RecEmail = Nothing Conn.Close Set Conn = Nothing Exit Function Else EmailInserted = True Set RecEmail = Nothing Conn.Close Set Conn = Nothing Exit Function End If E: MsgBox ("Error (" & Err.Description & ")... contact Michael") End Function ' Insert the email that was just sent Private Sub InsertSentEmail(ByVal Item As MailItem, CustID As Integer) 'On Error GoTo E Dim Conn As ADODB.Connection Set Conn = New ADODB.Connection MM_MyConn_STRING = "Provider=SQLOLEDB.1;User Id=sa;Initial Catalog=Products;Data Source=glacier2" Conn.ConnectionString = MM_MyConn_STRING If InStr(Item.Body, "--") <> 0 Then strBody = Left(Item.Body, InStr(Item.Body, "--") - 3) Else strBody = Item.Body End If If InStr(strBody, " 0 Then strBody = Left(strBody, InStr(Item.Body, " 0 Then strBody = Left(strBody, InStr(Item.Body, "__") - 1) End If Conn.Open Dim EmailNum As Integer Dim RecEmailNum As ADODB.Recordset Set RecEmailNum = New ADODB.Recordset RecEmailNum.Open "Select Top 1 CommentID From Comments Order By CommentID desc", Conn If RecEmailNum.EOF Then EmailNum = 1 Else EmailNum = RecEmailNum("CommentID") + 1 End If strBody = Replace(Replace(strBody, "'", ""), vbCr, "
") strTo = Replace(Item.Recipients(1).Address, "'", "") strSubject = Replace(Item.Subject, "'", "") Dim StaffID As Integer ' The StaffID for MCallahan@sportsmanager.us StaffID = 2 Conn.Execute "Insert Into Comments Values(" & EmailNum & ",'" & strBody & "','To'," & _ CustID & ",'" & strTo & "',-1,-1," & StaffID & ",'" & strSubject & "','" & _ Date & "','" & Date & " " & Time & "','','*Sent*" & Item.EntryID & "')" Conn.Execute "Update Login Set LastEmailedToDate='" & Date & "' Where CustID=" & CustID RecEmailNum.Close Set RecEmailNum = Nothing Conn.Close Exit Sub E: MsgBox ("Error (" & Err.Description & ")... contact Michael") End Sub ' Insert the email that was just recieved Private Sub InsertRecievedEmail(ByVal Item As MailItem, CustID As Integer) 'On Error GoTo E Dim Conn As ADODB.Connection Set Conn = New ADODB.Connection MM_MyConn_STRING = "Provider=SQLOLEDB.1;User Id=sa;Initial Catalog=Products;Data Source=glacier2" Conn.ConnectionString = MM_MyConn_STRING If InStr(Item.Body, "--") <> 0 Then strBody = Left(Item.Body, InStr(Item.Body, "--") - 3) Else strBody = Item.Body End If If InStr(strBody, " 0 Then strBody = Left(strBody, InStr(Item.Body, " 0 Then strBody = Left(strBody, InStr(Item.Body, "__") - 1) End If Conn.Open Dim EmailNum As Integer Dim RecEmailNum As ADODB.Recordset Set RecEmailNum = New ADODB.Recordset RecEmailNum.Open "Select Top 1 CommentID From Comments Order By CommentID desc", Conn If RecEmailNum.EOF Then EmailNum = 1 Else EmailNum = RecEmailNum("CommentID") + 1 End If strBody = Replace(Replace(strBody, "'", ""), vbCr, "
") strFrom = Replace(Item.Reply.Recipients(1).Address, "'", "") strSubject = Replace(Item.Subject, "'", "") ' The StaffID for MCallahan@sportsmanager.us StaffID = 2 Conn.Execute "Insert Into Comments Values(" & EmailNum & ",'" & strBody & "','From'," & _ CustID & ",'" & strFrom & "',-1,-1," & StaffID & ",'" & strSubject & "','" & _ Month(Item.CreationTime) & "/" & Day(Item.CreationTime) & "/" & Year(Item.CreationTime) & "','" & Item.CreationTime & "','','" & Item.EntryID & "')" Conn.Execute "Update Login Set LastEmailedFromDate='" & Month(Item.CreationTime) & "/" & Day(Item.CreationTime) & "/" & Year(Item.CreationTime) & "' Where Cast(LastEmailedFromDate as datetime)<'" & Month(Item.CreationTime) & "/" & Day(Item.CreationTime) & "/" & Year(Item.CreationTime) & "' And CustID=" & CustID RecEmailNum.Close Set RecEmailNum = Nothing Conn.Close Exit Sub E: MsgBox ("Error (" & Err.Description & ")... contact Michael") End Sub Sub EbaySearchEmail(objEmail As Object) Dim Conn As ADODB.Connection Set Conn = New ADODB.Connection MM_MyConn_STRING = "Provider=SQLOLEDB.1;User Id=sa;Initial Catalog=Products;Data Source=glacier2" Conn.ConnectionString = MM_MyConn_STRING Conn.Open Dim RecEbaySearch As ADODB.Recordset Set RecEbaySearch = New ADODB.Recordset Dim RecEbayListing As ADODB.Recordset Set RecEbayListing = New ADODB.Recordset Dim RecEbayListingExists As ADODB.Recordset Set RecEbayListingExists = New ADODB.Recordset RecEbaySearch.Open "Select EbaySearchID From EbaySearches Where ProductSearch='" & Trim(Replace(LCase(objEmail.Subject), "ebay favorite search: ", "")) & "'", Conn esnum = RecEbaySearch("EbaySearchID") Dim strEmail As String Dim Done As Boolean Dim strItemName, strItemLink, strItemNumber, strItemPrice, strBids, strBuyNow, strDate, strTime As String Done = False strEmail = objEmail.Body ' For i = 1 To 35 ' strEmail = Replace(strEmail, " ", " ") ' Next strEmail = Mid(strEmail, InStr(LCase(strEmail), "end date") + 8) If InStr(strEmail, ">") = 1 Then strEmail = Mid(strEmail, InStr(strEmail, ">") + 1) End If strEmail = Replace(Replace(Replace(strEmail, vbCr, ""), Chr(10), ""), vbTab, " ") strEmail = Replace(Replace(Replace(strEmail, "< /font>", ""), "< /a>", ""), "< /td>", "") Do Until Done = True If InStr(LCase(strEmail), "item=") = 0 Then Done = True Else strItemName = "" strItemNumber = "" strItemLink = "" strItemPrice = "" strBids = "" strBuyNow = "" strDate = "" strTime = "" strItemName = Trim(Left(strEmail, InStr(LCase(strEmail), "<") - 1)) strEmail = Trim(Mid(strEmail, InStr(LCase(strEmail), "<") + 1)) strTempEmail = Mid(strEmail, InStr(LCase(strEmail), "item=") + 5) strItemNumber = Replace(Left(strTempEmail, InStr(strTempEmail, "&") - 1), " ", "") strTempEmail = "" strItemLink = Replace(Left(strEmail, InStr(strEmail, ">") - 1), " ", "") If InStr(LCase(strItemLink), "item=" & strItemNumber) = 0 Then strEmail = Trim(Mid(strEmail, InStr(LCase(strEmail), ">") + 1)) strItemName = Trim(Left(strEmail, InStr(strEmail, "<") - 1)) strEmail = Trim(Mid(strEmail, InStr(LCase(strEmail), "<") + 1)) strItemLink = Replace(Left(strEmail, InStr(strEmail, ">") - 1), " ", "") End If strEmail = Trim(Mid(strEmail, InStr(strEmail, "$") + 1)) strItemPrice = Left(strEmail, InStr(strEmail, ".") + 2) If Left(strEmail, 1) = " " Then strEmail = Trim(Mid(strEmail, InStr(strEmail, " ") + 1)) Else strEmail = Trim(Mid(strEmail, Len(strItemPrice) + 1)) End If If Left(strEmail, 1) = "$" Then strEmail = Trim(Mid(strEmail, InStr(strEmail, " ") + 1)) End If strBids = Left(strEmail, InStr(LCase(strEmail), " ") - 1) If InStr(strBids, "$") <> 0 Or InStr(strBids, ".") <> 0 Then strEmail = Trim(Mid(strEmail, InStr(strEmail, "$") + 1)) strItemPrice = Left(strEmail, InStr(strEmail, ".") + 2) strEmail = Trim(Mid(strEmail, InStr(strEmail, " ") + 1)) strBids = Left(strEmail, InStr(LCase(strEmail), " ") - 1) End If strEmail = Trim(Mid(strEmail, InStr(strEmail, " ") + 1)) If Left(strEmail, 1) = "<" Then strEmail = Trim(Mid(strEmail, InStr(strEmail, ">") + 1)) End If strTempEmail = Trim(Left(strEmail, InStr(LCase(strEmail), "pst") + 3)) If InStr(LCase(strTempEmail), "buyitnow") = 0 Then strBuyNow = "" Else strBuyNow = "T" strEmail = Mid(strEmail, InStr(strEmail, ">") + 1) End If strTempEmail = "" strTempDate = Trim(Left(strEmail, InStr(LCase(strEmail), "pdt") - 1)) strEmail = Trim(Mid(strEmail, InStr(LCase(strEmail), "pst") + 3)) strTempDate = DateAdd("h", 3, strTempDate) If Hour(strTempDate) > 12 Then strDate = Month(strTempDate) & "/" & Day(strTempDate) & "/" & Year(strTempDate) & _ " " & Hour(strTempDate) - 12 & ":" & Minute(strTempDate) & ":" & _ Second(strTempDate) & " PM" Else If Hour(strTempDate) < 12 Then strDate = Month(strTempDate) & "/" & Day(strTempDate) & "/" & Year(strTempDate) & _ " " & Hour(strTempDate) & ":" & Minute(strTempDate) & ":" & _ Second(strTempDate) & " AM" Else strDate = Month(strTempDate) & "/" & Day(strTempDate) & "/" & Year(strTempDate) & _ " " & Hour(strTempDate) & ":" & Minute(strTempDate) & ":" & _ Second(strTempDate) & " PM" End If End If strTempDate = "" strTime = Mid(strDate, InStr(strDate, " ") + 1) RecEbayListingExists.Open "Select EbayListingID From EbayListing Where ItemNumber='" & Replace(strItemNumber, "'", "") & "'", Conn If RecEbayListingExists.EOF Then RecEbayListing.Open "Select Top 1 EbayListingID From EbayListing Order By EbayListingID desc", Conn If RecEbayListing.EOF Then elnum = 1 Else elnum = RecEbayListing("EbayListingID") + 1 End If RecEbayListing.Close Conn.Execute "Insert Into EbayListing Values(" & elnum & "," & esnum & ",'" & Replace(strItemName, "'", "") & _ "','" & Replace(strItemLink, "'", "") & "','" & Replace(strItemNumber, "'", "") & _ "'," & Replace(Replace(strItemPrice, "'", ""), ",", "") & ",'" & Replace(strBids, "'", "") & _ "','" & Replace(strBuyNow, "'", "") & "','" & Replace(strDate, "'", "") & _ "','" & Replace(strTime, "'", "") & "','T','" & objEmail.CreationTime & "','','','','','','','')" cs = CheckSeller(strItemLink, Replace(strItemNumber, "'", "")) If cs = "" Then cs = CheckSeller(strItemLink, Replace(strItemNumber, "'", "")) End If If cs = "" Then cs = CheckSeller(strItemLink, Replace(strItemNumber, "'", "")) End If If cs = "" Then cs = CheckSeller(strItemLink, Replace(strItemNumber, "'", "")) End If Else Conn.Execute "Update EbayListing Set EbaySearchID=" & esnum & ",ItemName='" & Replace(strItemName, "'", "") & _ "',ItemLink='" & Replace(strItemLink, "'", "") & _ "',ItemPrice=" & Replace(Replace(strItemPrice, "'", ""), ",", "") & ",ItemBids='" & Replace(strBids, "'", "") & _ "',ItemBuyNow='" & Replace(strBuyNow, "'", "") & "',ItemEndDate='" & Replace(strDate, "'", "") & _ "',ItemEndTime='" & Replace(strTime, "'", "") & "',Active='T',DateUpdated='" & objEmail.CreationTime & _ "' Where ItemNumber='" & Replace(strItemNumber, "'", "") & "'" End If RecEbayListingExists.Close End If Loop Conn.Execute "Update EbayListing Set Active='F' Where EbaySearchID=" & esnum & " And DateUpdated<'" & Date & "'" Conn.Execute "Update EbayListing Set Active='F' Where DateDiff(d,ItemEndDate,'" & Date & "') > 0" Conn.Close End Sub Private Function CheckSeller(strLink, strItem) On Error Resume Next Dim Conn As ADODB.Connection Set Conn = New ADODB.Connection MM_MyConn_STRING = "Provider=SQLOLEDB.1;User Id=sa;Initial Catalog=Products;Data Source=glacier2" Conn.ConnectionString = MM_MyConn_STRING Conn.Open Dim IE As SHDocVw.InternetExplorer Set IE = CreateObject("InternetExplorer.Application") Dim strPage As String Dim strSeller As String IE.AddressBar = False IE.Visible = False IE.Navigate (strLink) Do While IE.Busy Loop strPage = Left(IE.Document.Body.innerText, 5000) Do While strPage = "" strPage = Left(IE.Document.Body.innerText, 5000) Loop IE.Quit Set IE = Nothing strPage = Replace(Replace(Replace(strPage, vbCr, ""), Chr(10), ""), vbTab, " ") strPage = Mid(strPage, InStr(LCase(strPage), "seller information") + 18) If InStr(strPage, "(") > 1 Then strSeller = Left(strPage, InStr(strPage, "(") - 1) If Len(strSeller) > 50 Then strPage = "***Unknown***" Conn.Execute "Update EbayListing Set SellerName='" & Replace(strSeller, "'", "") & "' Where ItemNumber='" & strItem & "'" Conn.Close CheckSeller = strSeller End Function Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 'On Error GoTo E Dim CustID As Integer CustID = IsConfigCustomer(Item.Recipients(1).Address) If CustID > 0 Then InsertSentEmail Item, CustID End If Exit Sub E: MsgBox ("Error (" & Err.Description & ")... contact Michael") End Sub Private Sub Application_NewMail() On Error GoTo E Dim onMAPI As NameSpace Dim ofFolder As MAPIFolder Dim objNewMail As MailItem Set onMAPI = GetNamespace("MAPI") Set ofFolder = onMAPI.GetDefaultFolder(olFolderInbox) If DateDiff("s", ofFolder.Items.GetLast.CreationTime, ofFolder.Items.GetFirst.CreationTime) > 0 Then Set objNewMail = ofFolder.Items.GetFirst Else Set objNewMail = ofFolder.Items.GetLast End If '"/o=new technology solutions, inc./ou=ntsi/cn=recipients/cn=mcallahan" Then '"mcallahan@sportsmanager.us" Then ' If LCase(objNewMail.Reply.Recipients(1).Address) = "savedsearches@ebay.com" Then EbaySearchEmail objNewMail Exit Sub End If Dim strAddress As String If EmailInserted(objNewMail.EntryID) = False Then strAddress = objNewMail.Reply.Recipients(1).Address ' Make Sure the email is not coming directly from our server ' and that if copied to more than oner person here the email ' is saved only once If LCase(objNewMail.Recipients(1).Address) <> "mcallahan@sportsmanager.us" Then GoTo N End If ' Make sure this email is not coming from the configurator ' in which case it has already been saved If objNewMail.Subject = "NTSI Web Comment/Question" Or objNewMail.Subject = "NTSI Web Quote Comment/Question" Or objNewMail.Subject = "NTSI Web Quote Purchase" Or objNewMail.Subject = "NTSI Corporate/Volume Discount Request" Then GoTo N End If Dim CustID As Integer CustID = IsConfigCustomer(strAddress) If CustID > 0 Then InsertRecievedEmail objNewMail, CustID End If End If N: Set objNewMail = Nothing Set objNewMail = ofFolder.Items.GetLast If EmailInserted(objNewMail.EntryID) = False Then strAddress = objNewMail.Reply.Recipients(1).Address ' Make Sure the email is not coming directly from our server ' and that if copied to more than oner person here the email ' is saved only once If LCase(objNewMail.Recipients(1).Address) <> "mcallahan@sportsmanager.us" Then Exit Sub End If ' Make sure this email is not coming from the configurator ' in which case it has already been saved If objNewMail.Subject = "NTSI Web Comment/Question" Or objNewMail.Subject = "NTSI Web Quote Comment/Question" Or objNewMail.Subject = "NTSI Web Quote Purchase" Or objNewMail.Subject = "NTSI Corporate/Volume Discount Request" Then Exit Sub End If CustID = IsConfigCustomer(strAddress) If CustID > 0 Then InsertRecievedEmail objNewMail, CustID End If End If Set objNewMail = Nothing Set ofFolder = Nothing Set onMAPI = Nothing Exit Sub E: Debug.Print "Error (" & Err.Description & ")... contact Michael" & " " & Time & vbCr End Sub Private Sub Application_Startup() 'On Error Resume Next Dim intUnRead As Integer intUnRead = 0 Dim strAddress As String Dim CustID As Integer Dim ofFolder As MAPIFolder Set ofFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) For Each mail In ofFolder.Items If mail.UnRead = True Then If EmailInserted(mail.EntryID) = False Then strAddress = mail.Reply.Recipients(1).Address ' Make Sure the email is not coming directly from our server ' and that if copied to more than oner person here the email ' is saved only once If LCase(mail.Recipients(1).Address) <> "mcallahan@sportsmanager.us" Then Exit Sub End If ' Make sure this email is not coming from the configurator ' in which case it has already been saved If mail.Subject = "NTSI Web Comment/Question" Or mail.Subject = "NTSI Web Quote Comment/Question" Or mail.Subject = "NTSI Web Quote Purchase" Or mail.Subject = "NTSI Corporate/Volume Discount Request" Then Exit Sub End If CustID = IsConfigCustomer(strAddress) If CustID > 0 Then InsertRecievedEmail mail, CustID End If End If Else intUnRead = intUnRead + 1 If intUnRead > 3 Then Exit For Else If EmailInserted(mail.EntryID) = False Then strAddress = mail.Reply.Recipients(1).Address ' Make Sure the email is not coming directly from our server ' and that if copied to more than oner person here the email ' is saved only once If LCase(mail.Recipients(1).Address) <> "mcallahan@sportsmanager.us" Then Exit Sub End If ' Make sure this email is not coming from the configurator ' in which case it has already been saved If mail.Subject = "NTSI Web Comment/Question" Or mail.Subject = "NTSI Web Quote Comment/Question" Or mail.Subject = "NTSI Web Quote Purchase" Or mail.Subject = "NTSI Corporate/Volume Discount Request" Then Exit Sub End If CustID = IsConfigCustomer(strAddress) If CustID > 0 Then InsertRecievedEmail mail, CustID End If End If End If End If Next Exit Sub E: ' MsgBox ("Error (" & Err.Description & ")... contact Michael") End Sub