Feedback Formular

  • hallo ich bin gerade dabei eine feedback gui zu erstellen, allerdings funktioniert die überhaupt nicht wie ich es gerne möchte

    er sendet nämlich die emails schon bevor ich überhaupt senden klicke
    außerdem wenn ich abbrechen oder x klicke schließt es sich erst sobald die email gesendet wurde...


    wäre es außerdem möglich so eine fortschrittsanzeige der email anzeigen zu lassen, zb.. email wird gesendet, erfolgreich gesendet, und evtl noch noch eine fortschrittsanzeige wie weit das senden schon ist

    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.0.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ---------------------------------------------------------------------------

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

    ;
    ;##################################
    ; Include
    ;##################################
    #Include<file.au3>
    #include<INet.au3>
    #include <ScreenCapture.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $version = "1.9"
    $Form1 = GUICreate("Feedback", 316, 475, 192, 124)
    $Group1 = GUICtrlCreateGroup("", 8, 8, 297, 409)
    $Input1 = GUICtrlCreateInput(@UserName, 104, 24, 169, 21)
    $Label1 = GUICtrlCreateLabel("Dein Name:", 24, 24, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Betreff:", 24, 56, 45, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $input2 = GUICtrlCreateInput("Feedback von Version " & $version, 104, 56, 169, 21)
    $subject = GUICtrlRead($input2)
    $Label3 = GUICtrlCreateLabel("Nachricht:", 24, 120, 53, 17)
    $Label4 = GUICtrlCreateLabel("Deine E-Mail", 24, 88, 64, 17)
    $Input3 = GUICtrlCreateInput("", 104, 88, 169, 21)
    $Edit1 = GUICtrlCreateEdit("", 80, 120, 217, 289)
    GUICtrlSetData(-1, "Hallo,")
    $Body = GUICtrlRead($Edit1)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Senden", 24, 432, 89, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Abbrechen", 168, 432, 89, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $SmtpServer = "smtp.googlemail.com" ; address for the smtp-server to use - REQUIRED
    $FromName = "Auto IT Script" ; name from who the email was sent
    $FromAddress = "********@googlemail.com" ; address from where the mail should come
    $ToAddress = "********" ; destination address of the email - REQUIRED
    ;$Subject = "Computername: " & @Computername ; subject from the email - can be anything you want it to be
    ;$Body = "Username: " & @UserName &" Betriebssystem: " & _OSVersion() &" IP-Adresse: " & $publicIP & " Sprache: " & _Language() ; the messagebody from the mail - can be left blank but then you get a blank mail
    $AttachFiles = "" ; the file you want to attach- leave blank if not needed
    $CcAddress = "" ; address for cc - leave blank if not needed
    $BccAddress = "" ; address for bcc - leave blank if not needed
    $Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
    $Username = "mail.*****" ; username for the account used from where the mail gets sent - REQUIRED
    $Password = "***********" ; password for the account used from where the mail gets sent - REQUIRED
    $IPPort = 25 ; port used for sending the mail
    $ssl = 1 ; enables/disables secure socket layer sending - put to 1 if using httpS
    ;~ $IPPort=465 ; GMAIL port used for sending the mail
    ;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS

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

    ;##################################
    ; Script
    ;##################################
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $nmsg = $Button1
    $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)
    Exit
    EndIf
    Case $nmsg = $Button2

    Exit

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

    EndSwitch
    WEnd

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

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

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

    ;
    ; The UDF
    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")
    $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

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

    $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
    ;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
    ; Set Email Importance
    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
    ; Sent the Message
    $objEmail.Send
    If @error Then
    SetError(2)
    Return $oMyRet[1]
    EndIf
    $objEmail=""
    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][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • habs mal behoben, schau dir mal die while schleife genauer an.
    nun sollte die nachricht erst gesendet werden wenn senden gedrückt wird.
    nach dem drücken auf Senden dauert es ein paar sec bis die nachricht gesendet wird.

    Spoiler anzeigen
    [autoit]

    ;
    ;##################################
    ; Include
    ;##################################
    #include<file.au3>
    #include<INet.au3>
    #include <ScreenCapture.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $version = "1.9"
    $Form1 = GUICreate("Feedback", 316, 475, 192, 124)
    $Group1 = GUICtrlCreateGroup("", 8, 8, 297, 409)
    $Input1 = GUICtrlCreateInput(@UserName, 104, 24, 169, 21)
    $Label1 = GUICtrlCreateLabel("Dein Name:", 24, 24, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Betreff:", 24, 56, 45, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $input2 = GUICtrlCreateInput("Feedback von Version " & $version, 104, 56, 169, 21)
    $subject = GUICtrlRead($input2)
    $Label3 = GUICtrlCreateLabel("Nachricht:", 24, 120, 53, 17)
    $Label4 = GUICtrlCreateLabel("Deine E-Mail", 24, 88, 64, 17)
    $Input3 = GUICtrlCreateInput("", 104, 88, 169, 21)
    $Edit1 = GUICtrlCreateEdit("", 80, 120, 217, 289)
    GUICtrlSetData(-1, "Hallo,")
    $Body = GUICtrlRead($Edit1)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Senden", 24, 432, 89, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Abbrechen", 168, 432, 89, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $SmtpServer = "smtp.googlemail.com" ; address for the smtp-server to use - REQUIRED
    $FromName = "Auto IT Script" ; name from who the email was sent
    $FromAddress = "********@googlemail.com" ; address from where the mail should come
    $ToAddress = "********" ; destination address of the email - REQUIRED
    ;$Subject = "Computername: " & @Computername ; subject from the email - can be anything you want it to be
    ;$Body = "Username: " & @UserName &" Betriebssystem: " & _OSVersion() &" IP-Adresse: " & $publicIP & " Sprache: " & _Language() ; the messagebody from the mail - can be left blank but then you get a blank mail
    $AttachFiles = "" ; the file you want to attach- leave blank if not needed
    $CcAddress = "" ; address for cc - leave blank if not needed
    $BccAddress = "" ; address for bcc - leave blank if not needed
    $Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
    $Username = "mail.*****" ; username for the account used from where the mail gets sent - REQUIRED
    $Password = "***********" ; password for the account used from where the mail gets sent - REQUIRED
    $IPPort = 25 ; port used for sending the mail
    $ssl = 1 ; enables/disables secure socket layer sending - put to 1 if using httpS
    ;~ $IPPort=465 ; GMAIL port used for sending the mail
    ;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS

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

    ;##################################
    ; Script
    ;##################################
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Button2
    Exit
    Case $Button1
    $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)
    Exit
    EndIf
    MsgBox(0, "Meldung", "Nachricht wurde gesendet")

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

    EndSwitch
    WEnd

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

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

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

    ;
    ; The UDF
    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")
    $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

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

    $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
    ;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
    ; Set Email Importance
    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
    ; Sent the Message
    $objEmail.Send
    If @error Then
    SetError(2)
    Return $oMyRet[1]
    EndIf
    $objEmail = ""
    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]

    edit: gerade noch aufgefallen der body funktioniert so nicht. solltest über guictrlread diesen erst auslesen lassen. dann sollte es funktionieren.

  • oke das funktioniert jetz schonmal...
    aber wenn ich jetzt mehrere zeilen schreibe, wird nur die erste übernommen...wie fixt man dies?

  • Das liegt daran das die Gui direct nach dem erstellen ausgelesen wird.

    Folglich müssen die Felder erst ausgelesen werden wenn der Senden Button gedrückt wird. Also dann so:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.0.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ---------------------------------------------------------------------------

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

    ;
    ;##################################
    ; Include
    ;##################################
    #include<file.au3>
    #include<INet.au3>
    #include <ScreenCapture.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $version = "1.9"
    $Form1 = GUICreate("Feedback", 316, 475, 192, 124)
    $Group1 = GUICtrlCreateGroup("", 8, 8, 297, 409)
    $Input1 = GUICtrlCreateInput(@UserName, 104, 24, 169, 21)
    $Label1 = GUICtrlCreateLabel("Dein Name:", 24, 24, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Betreff:", 24, 56, 45, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $input2 = GUICtrlCreateInput("Feedback von Version " & $version, 104, 56, 169, 21)
    $Label3 = GUICtrlCreateLabel("Nachricht:", 24, 120, 53, 17)
    $Label4 = GUICtrlCreateLabel("Deine E-Mail", 24, 88, 64, 17)
    $Input3 = GUICtrlCreateInput("", 104, 88, 169, 21)
    $Edit1 = GUICtrlCreateEdit("", 80, 120, 217, 289)
    GUICtrlSetData(-1, "Hallo,")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Senden", 24, 432, 89, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Abbrechen", 168, 432, 89, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $SmtpServer = "smtp.googlemail.com" ; address for the smtp-server to use - REQUIRED
    $FromName = "Auto IT Script" ; name from who the email was sent
    $FromAddress = "********@googlemail.com" ; address from where the mail should come
    $ToAddress = "********" ; destination address of the email - REQUIRED
    ;$Subject = "Computername: " & @Computername ; subject from the email - can be anything you want it to be
    ;$Body = "Username: " & @UserName &" Betriebssystem: " & _OSVersion() &" IP-Adresse: " & $publicIP & " Sprache: " & _Language() ; the messagebody from the mail - can be left blank but then you get a blank mail
    $AttachFiles = "" ; the file you want to attach- leave blank if not needed
    $CcAddress = "" ; address for cc - leave blank if not needed
    $BccAddress = "" ; address for bcc - leave blank if not needed
    $Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
    $Username = "mail.*****" ; username for the account used from where the mail gets sent - REQUIRED
    $Password = "***********" ; password for the account used from where the mail gets sent - REQUIRED
    $IPPort = 25 ; port used for sending the mail
    $ssl = 1 ; enables/disables secure socket layer sending - put to 1 if using httpS
    ;~ $IPPort=465 ; GMAIL port used for sending the mail
    ;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS

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

    ;##################################
    ; Script
    ;##################################
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Button2
    Exit
    Case $Button1
    $body= GUICtrlRead($Edit1)
    $subject = GUICtrlRead($input2)
    $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)
    Exit
    EndIf
    MsgBox(0, "Meldung", "Nachricht wurde gesendet")

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

    EndSwitch
    WEnd

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

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

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

    ;
    ; The UDF
    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")
    $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

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

    $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
    ;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
    ; Set Email Importance
    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
    ; Sent the Message
    $objEmail.Send
    If @error Then
    SetError(2)
    Return $oMyRet[1]
    EndIf
    $objEmail = ""
    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]
  • achja stimmt^^...bin ich blöd

    so und das letzte problem...
    wieso funktioniert das nicht?
    das muss so sein, weil ich dieses feedback skript in mein skript integrieren möchte und ich nicht zwei dateien haben möchte

    [autoit]

    func _email()
    Global $input1, $input2, $input3, $edit1, $Button5, $button6, $nMsg
    $Form1 = GUICreate("Feedback", 316, 475, 192, 124)
    guisetonevent($gui_event_close,"OKPressed")
    $Group1 = GUICtrlCreateGroup("", 8, 8, 297, 409)
    $Input1 = GUICtrlCreateInput(@UserName, 104, 24, 169, 21)
    $Label1 = GUICtrlCreateLabel("Dein Name:", 24, 24, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Betreff:", 24, 56, 45, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $input2 = GUICtrlCreateInput("Feedback von Version " & $version, 104, 56, 169, 21)
    $Label3 = GUICtrlCreateLabel("Nachricht:", 24, 120, 53, 17)
    $Label4 = GUICtrlCreateLabel("Deine E-Mail", 24, 88, 64, 17)
    $Input3 = GUICtrlCreateInput("", 104, 88, 169, 21)
    $Edit1 = GUICtrlCreateEdit("", 80, 120, 217, 289)
    GUICtrlSetData(-1, "Hallo,")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button5 = GUICtrlCreateButton("Senden", 24, 432, 89, 25, $WS_GROUP)
    GUISetOnEvent(-1, "_Senden")
    $Button6 = GUICtrlCreateButton("Abbrechen", 168, 432, 89, 25, $WS_GROUP)
    GUISetOnEvent(-1, "_Abbrechen")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    EndFunc
    #cs
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Button6
    Exit
    Case $Button5
    $body= GUICtrlRead($Edit1)
    $subject = GUICtrlRead($input2)
    $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)
    Exit
    EndIf
    MsgBox(0, "Meldung", "Nachricht wurde gesendet")
    Exit

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

    EndSwitch
    WEnd
    #ce

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

    func _Senden()
    MsgBox(0, "", "")
    $body= GUICtrlRead($Edit1)
    $subject = GUICtrlRead($input2)
    MsgBox(0, "", $body & $subject)
    $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)
    Exit
    EndIf
    EndFunc

    func _Abbrechen()
    Exit
    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von Reaker (15. Juli 2009 um 16:21)

  • Wenn du alles in Funktionen packst müssen die natürlich auch vorher ausgeführt werden, bsp.

    [autoit]


    formular()

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

    Senden()

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

    Func Formular()
    ;scriptteil zum erstellen der GUI
    EndFunc

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

    Func Senden()
    ;scriptteil zum senden der Mail
    EndFunc

    [/autoit]

    wichtig ist das du functionen nicht ineinander verschachteln kannst wie for next oder if then, jedoch kannst du aus einer funktion eine andere herraus ausführen.

  • das habe ich doch gemacht schau dir mal den Button5 an normal müsste dann func senden starten tut sie aber nicht...

  • das muss es ja auch nicht oder...
    weil bei meiner anderen gui geht das auch komplett ohne while nur mit funktionen... und die sind nicht anders als bei der