2 Variablen auslesen

  • ich möchte den skript so hinbekommen, das er 2 variablen in eine email schriebt und diese dann verschickt.

    hier is der skript von mir:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Global $title = "Test GUI"

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

    $hwnd = GUICreate($title, 300, 150, 192, 124)
    $Input1 = GUICtrlCreateInput("", 90, 16, 80, 20)
    $Input2 = GUICtrlCreateInput("", 90, 50, 100, 20)
    $Button1 = GUICtrlCreateButton("Senden", 10, 120, 100, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $SmtpServer = ("smtp.web.de")
    $FromName = (".....@web.de")
    $FromAddress = (".....@web.de")
    $ToAddress = (".....@web.de")
    $Subject = ("test")
    $Body = GUICtrlRead ($Input2) ($Input3) ; hier soll er input1 und input2 einlesen. wie muss ich das schreiben?
    $AttachFiles = ""
    $CcAddress = ""
    $BccAddress = ""
    $Importance = "Normal"
    $Username = (".....@web.de")
    $Password = ("*****")
    $IPPort = 25
    $ssl = 0

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

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    $rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
    If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
    EndIf

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

    Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)
    Local $objEmail = ObjCreate("CDO.Message")
    If @error <> 0 Then
    MsgBox(0, "test", "test")
    Exit
    EndIf
    $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])
    ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
    If FileExists($S_Files2Attach[$x]) Then
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    Else
    ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
    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
    If Number($IPPort) = 0 then $IPPort = 25
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort

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

    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

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

    $objEmail.Configuration.Fields.Update

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

    Switch $s_Importance
    Case "High"
    $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
    Case "Normal"
    $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"
    Case "Low"
    $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"
    EndSwitch
    $objEmail.Fields.Update

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

    $objEmail.Send
    If @error Then
    SetError(2)
    Return $oMyRet[1]
    EndIf
    $objEmail=""
    Exit
    EndFunc
    EndSwitch
    WEnd

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

    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)
    Return
    EndFunc

    [/autoit]

    am besten so das dann in der mail steht

    1. ($input1)
    2. ($input2)

  • Probiere es mal mit $Body = GUICtrlRead($Input1) & GUICtrlRead($Input2)

    Ansonsten hast du noch Fehler im Code!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hallo,

    Zitat
    [autoit]

    $Body = GUICtrlRead ($Input2) ($Input3) ; hier soll er input1 und input2 einlesen. wie muss ich das schreiben?

    [/autoit]

    würde ich so ersetzen:

    [autoit]

    $Body = "1. "& GuiCtrlRead($Input1) & @CRLF & "2. " & GuiCtrlRead($Input2) & @CRLF

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • UEZ

    das mit & funktz aber was meintest du mit noch mehr fehler im code?

    also bei mir funktz der ohne fehler oder wie mienste das?!

  • Z.B. eine Funktion in einer While-Schleife, das geht überhaupt nicht. Und dein Code ist ein bisschen unordentlich, las mal den Tidy drübergehen.