Avatar billede igoogle Forsker
13. februar 2018 - 12:30 Der er 7 kommentarer

Indsæt mail header og tekst i sql database

Hej,

jeg prøver at få sat en løsning op så når jeg modtager en mail så laver den en linje i min sql database med afsender header og brødteksten (første 100 tegn)

men er løbet tør for gode ideer om hvordan dette lige kan strikkes sammen.

Nogen der har nogen gode snippets som jeg kan fikse sammen ?

-igoogle
13. februar 2018 - 12:43 #1
Hvilket mailprogram bruger du?
Avatar billede igoogle Forsker
13. februar 2018 - 13:05 #2
Outlook 2016
Avatar billede Slettet bruger
13. februar 2018 - 13:30 #3
find ud af formatet på mails, skil den ad med en text/hex editor/html editor

du skriver du kun vil have 100 tegn af teksten, så husk at kopiere slutningsheaderen i mailen med.
Avatar billede acore Ekspert
13. februar 2018 - 13:51 #4
Hvor ligger dine mails?

Hvor ligger din sql database?

Du kan med php læse mails via imap protokollen og gemme dem i din database. Så er den ged barberet. Men nu poster du under "E-mail programmer", så forestiller du dig, at dette skal ske loklat fra dit mail-program, eller...?
13. februar 2018 - 14:05 #5
Step 1

Option Explicit
Private WithEvents inboxItems As Outlook.Items
Private Sub Application_Startup()
  Dim outlookApp As Outlook.Application
  Dim objectNS As Outlook.NameSpace
 
  Set outlookApp = Outlook.Application
  Set objectNS = outlookApp.GetNamespace("MAPI")
  Set inboxItems = objectNS.GetDefaultFolder(olFolderInbox).Items
  MsgBox "her"
End Sub
Private Sub inboxItems_ItemAdd(ByVal Item As Object)
On Error GoTo ErrorHandler
Dim Msg As Outlook.MailItem
Dim MessageInfo
Dim Result
If TypeName(Item) = "MailItem" Then
    MessageInfo = "" & _
        "Sender : " & Item.SenderEmailAddress & vbCrLf & _
        "Sent : " & Item.SentOn & vbCrLf & _
        "Received : " & Item.ReceivedTime & vbCrLf & _
        "Subject : " & Item.Subject & vbCrLf & _
        "Size : " & Item.Size & vbCrLf & _
        "Message Body : " & vbCrLf & Item.Body
    Result = MsgBox(MessageInfo, vbOKOnly, "New Message Received")
End If
ExitNewItem:
    Exit Sub
ErrorHandler:
    MsgBox Err.Number & " - " & Err.Description
    Resume ExitNewItem
End Sub


Placeres i ThisOutlookSession
13. februar 2018 - 14:38 #6
Step 2

Efter
Result = MsgBox(MessageInfo, vbOKOnly, "New Message Received")


kan du indsætte

    Dim oCon As ADODB.Connection
    Dim oRS As ADODB.Recordset
    Set oCon = New ADODB.Connection
    oCon.ConnectionString = "Provider=SQLOLEDB;Server=.\SQLEXPRESS;Database=DINDATABASE; Trusted_Connection=yes;"
    oCon.Open
    oCon.Execute "INSERT INTO Emails (Mailaddress) VALUES ('" & Item.SenderEmailAddress & "')"
    '
    oCon.Close
    If Not oCon Is Nothing Then Set oCon = Nothing


Der skal desuden sættes hak i Microsoft ActiveX Data Objects xx Libray

Så skulle du kunne komme resten af vejen selv ;-)
13. februar 2018 - 14:57 #7
En lille krølle...
Hvis du vil undgå SQL Injection bør du bruge parametre

Dim oCon As ADODB.Connection
    Dim oRS As ADODB.Recordset
    Dim oCm As ADODB.Command
    Dim oPm As ADODB.Parameter
    Set oCon = New ADODB.Connection
    oCon.ConnectionString = "Provider=SQLOLEDB;Server=.\SQLEXPRESS;Database=DINDATABASE; Trusted_Connection=yes;"
    oCon.Open
    Set oCm = New ADODB.Command
    With oCm
        .ActiveConnection = oCon
        .CommandText = "INSERT INTO Emails (Mailaddress) VALUES (?)"
        .CommandType = adCmdText
        Set oPm = .CreateParameter("mailaddress", adVarChar, adParamInput, 50)
        oPm.Value = Item.SenderEmailAddress & "test"
        .Parameters.Append oPm
        .Execute
    End With
    oCon.Close
    If Not oCon Is Nothing Then Set oCon = Nothing
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester