Fester Text im E-Mailbody

  • Hallo.

    Wie bekomme ich folgende Informationen fest in den Body einer Email.
    Bis dato lasse ich es über eine Textdatei an die Email anhängen, aber ich möchte die Informationen in der Email, da man es dann ja auch weiter über Filter bearbeiten / filtern kann.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <inet.au3>
    #Include <file.au3>

    ;##################################
    ; Variables
    ;##################################
    $s_SmtpServer = "smtp.alice-dsl.net" ; smtp vom sendeserver
    $s_FromName = ""***********@alice-dsl.net" ; der anmeldename
    $s_FromAddress = ""***********@alice-dsl.net" ; die angemeldete emailadresse
    $s_ToAddress = ""***********@alice-dsl.net" ; emailadresse an wen es gehen soll
    $s_Subject = _GetIP() ; das betreff <-------------------- IP des PC's von dem gesendet wird

    $file = @SystemDir & "\info.txt"
    $fh = FileOpen($file, 0)
    $as_Body = FileRead($fh) ; text im body <-------------------- Inhalt der 5 Zeiligen Datei
    FileClose($fh)

    $s_AttachFiles = @SystemDir & "\info.txt" ; anhang <-------------------- @SystemDir & "\info.txt"
    $s_CcAddress = "" ; adresse für cc
    $s_BccAddress = "" ; aadresse für bcc
    $s_Username = "***********@alice-dsl.net" ; username von dem gesendet werden soll
    $s_Password = "***********" ; passwort von dem sendekonto gebe ich eigentlich an ;)

    ;~ $IPPort=25 ; port - 25 oder 465 ; PORT 25 ist default
    ;~ $ssl=0 ; enables/disables ssl sonst 0 oder 1 ; 0 ist default

    ;##################################
    ; Script
    ;##################################
    Global $oMyRet[2]
    Global $oMyError = ObjEvent("Error", "ErrFunc")

    [/autoit] [autoit][/autoit] [autoit]

    $rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password);, $IPPort, $ssl)
    If @error then
    msgbox(0,"Error sending message","Error code:" & @error & " Description:" & $rc)
    EndIf
    #ce
    Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", _
    $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "",$IPPort=25, $ssl=0)
    $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
    Local $i_Error = 0
    Local $i_Error_desciption = ""
    If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
    If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
    $objEmail.HTMLBody = $as_Body
    Else
    $objEmail.Textbody = $as_Body & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
    Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
    For $x = 1 To $S_Files2Attach[0]
    $S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
    If FileExists($S_Files2Attach[$x]) Then
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    Else
    $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
    SetError(1)
    return 0
    EndIf
    Next
    EndIf
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    ;Authenticated SMTP
    If $s_Username <> "" Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    If $Ssl Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Sent the Message
    $objEmail.Send
    if @error then
    SetError(2)
    return $oMyRet[1]
    EndIf
    EndFunc ;==>_INetSmtpMailCom
    ; Com Error Handler
    Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    $oMyRet[0] = $HexNumber
    $oMyRet[1] = StringStripWS($oMyError.description,3)
    ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
    SetError(1); something to check for when this function returns
    Return
    EndFunc ;==>MyErrFunc

    [/autoit]

    Diese Angaben sollen dann im Body stehen:

    a) der Computername
    b) die lokale IP des Computers
    c) die IP-Adresse die der PC, bzw. im Netzwerk der Router, beim Provider erhält
    d) Providername
    e) die MAC-Adresse der Netzwerkkarte
    f) Datum und Zeit

    LG, L I N A.

    P. S. Endlich Wochenende und Lehrgang erfolgreich bestanden ! :rock:

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (29. März 2008 um 23:49)

  • @ GTA

    Ich bin dabei etwas zu machen, wo ich aber noch nicht sagen möchte, worum es genau geht.
    Nicht böse nehmen, bitte.

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Klaro bin ich mir da sicher GTA.
    Ich möchte ja nicht bei Herrn Harz Nr. IV zu besuch sein.

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    • Offizieller Beitrag

    Hallo

    Ok, ich hab dir mal schnell was geschrieben. Ich hoffe das meinstest du^^

    Spoiler anzeigen
    [autoit]

    #include<Inet.au3>
    #include<IE.au3>

    [/autoit] [autoit][/autoit] [autoit]


    $s_SmtpServer = "smtp.alice-dsl.net" ; smtp vom sendeserver
    $s_FromName = "***********@alice-dsl.net" ; der anmeldename
    $s_FromAddress = "***********@alice-dsl.net" ; die angemeldete emailadresse
    $s_ToAddress = "***********@alice-dsl.net" ; emailadresse an wen es gehen soll
    $s_Subject = _GetIP(); heißt ürbrigends >der< Betreff ;)
    Dim $as_Body[7]
    $as_Body[0] = "Informationen vom PC:"
    $as_Body[1] = "Computername: "&@ComputerName
    $as_Body[2] = "LAN IP: "&@IPAddress1
    $as_Body[3] = "WAN IP: "&_GetIP()
    $as_Body[4] = "Providername: "&_GetProvider()
    $as_Body[5] = "MAC: "&_GetMACFromIP()
    $as_Body[6] = "Datum und Zeit: "&@MDAY&"."&@MON&"."&@YEAR&" "&@HOUR&":"&@MIN&":"&@SEC

    [/autoit] [autoit][/autoit] [autoit]

    ;Anmelde daten sind nicht notwendig!

    [/autoit] [autoit][/autoit] [autoit]

    $Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body)
    $err = @error
    If $Response = 1 Then
    MsgBox(0, "Success!", "Mail sent")
    Else
    MsgBox(0, "Error!", "Mail failed with error code " & $err)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;by GtaSpider
    Func _GetProvider()
    Local $oIE,$oForm,$ss,$i
    $oIE = _IECreate('http://www.heise-online.co.uk/networks/tools/whois-query',0,0)
    $oForm = _IEFormGetObjByName($oIE,"f1")
    _IEFormSubmit($oForm)
    $ss = StringSplit(_IEBodyReadHTML($oIE),@CRLF)
    _IEQuit($oIE)
    For $i = 1 TO $ss[0]
    If StringInStr($ss[$i],"netname:") Then ExitLoop
    Next
    If UBound($ss) < $i+1 Or (Not StringInStr($ss[$i],"netname:")) Then Return "Unknow!"
    Return StringTrimLeft($ss[$i],16)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;by GtaSpider
    Func _GetMACFromIP($sIP=@IPAddress1, $mode = 1)
    Local $MAC, $MACSize
    Local $i, $s, $r, $iIP
    $MAC = DllStructCreate("byte[6]")
    $MACSize = DllStructCreate("int")
    DllStructSetData($MACSize, 1, 6)
    $r = DllCall("Ws2_32.dll", "int", "inet_addr", _
    "str", $sIP)
    $iIP = $r[0]
    $r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
    $s = ""
    If $mode = 0 Then
    For $i = 0 To 5
    $s &= Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next

    ElseIf $mode = 1 Then
    For $i = 0 To 5
    If $i Then $s = $s & ":"
    $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next
    ElseIf $mode = 2 Then
    For $i = 0 To 5
    If $i Then $s = $s & "-"
    $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
    Next
    EndIf
    Return $s
    EndFunc ;==>_GetMACFromIP

    [/autoit]


    Mfg Spider

  • Hallo GTA.

    EDIT !!!!

    Funktioniert. Hatte Include vergessen mit zu nehmen !!!

    DANKE !!!!!

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    2 Mal editiert, zuletzt von Alina (29. März 2008 um 00:26)

    • Offizieller Beitrag

    Habs mal getestet - funktioniert bei mir tadellos. :S

    Edit:
    Hier mal eine Funktion um per nslookup den Provider abzufragen.

    [autoit]

    #include <INet.au3>
    MsgBox(0, '', GetProvider(_GetIP() ) )

    [/autoit][autoit][/autoit][autoit]

    Func GetProvider($WAN_IP)
    Local $pid = Run(@ComSpec & " /c " & 'nslookup ' & $WAN_IP, '', @SW_HIDE, 2)
    Local $line, $var, $i
    While 1
    $line = StdoutRead($pid)
    If @error Then ExitLoop
    $var = StringSplit($line, @LF)
    For $i = 1 To UBound($var) -1
    If StringLeft($var[$i], 4) = 'Name' Then Return StringStripWS(StringTrimLeft($var[$i], 5), 3)
    Next
    Wend
    Return 'Provider nicht feststellbar'
    EndFunc

    [/autoit]