Feedback funktion

  • Hallo wie baue ich eine Feedbackfunktion in ein script ein.
    habe schon eins, allerdings funktioniert das mit einer email die extra dafür erstellt habe.
    problem ist jeder kann dann das passwort auslesen, gibt es da keine andere möglichkeit?

    hoffe es kann einer helfen.

  • ja dass man in seiner gui auf feedback senden klickt
    dann kommt da ein feld in dem man sein kommentar über das programm reinschreibt und ich diesen kommentar irgendwie abrufen kann

    /Edit

    also zur zeit schaut sie so aus:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIListBox.au3>
    _email()
    func _email()
    Global $input1, $input2, $input3, $edit1, $Button5, $Button6, $nMsg, $Version
    $Form1 = GUICreate("Feedback", 316, 475, 192, 124)
    GUISetBkColor(0xE0FFFF)
    global $tIni = @ScriptDir & "\continue.ini"
    GUISetBkColor(0xE0FFFF)
    if IniRead($tIni, "Einstellungen", "Hintergrund", "") = "Standard" Then
    GUISetBkColor(0xE0FFFF)
    else
    $back = IniRead($tIni, "Einstellungen", "Hintergrund", "")
    $pic = GUICtrlCreatePic ($back,0,0,316,475,@SW_HIDE)

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

    EndIf
    ;guisetonevent($gui_event_close,"OKPressed")
    $Version = IniRead($tIni, "Version", "Version", "")
    $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")
    if not FileExists($tIni) Then
    $input2 = GUICtrlCreateInput("Feedback", 104, 56, 169, 21)
    Else
    $input2 = GUICtrlCreateInput("Feedback von Version " & $version, 104, 56, 169, 21)
    EndIf
    GUICtrlSetState(-1, $gui_disable)
    $Label3 = GUICtrlCreateLabel("Nachricht:", 24, 120, 53, 17)
    $Label4 = GUICtrlCreateLabel("Deine E-Mail", 24, 88, 64, 17)

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

    $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, 97, 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
    $SmtpServer = "smtp.googlemail.com" ; address for the smtp-server to use - REQUIRED
    $FromName = "****" ; name from who the email was sent
    $FromAddress = "****" ; 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 = "********" ; 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
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Button6
    Exit
    Case $Button5
    global $label4
    $Label4 = GUICtrlCreateLabel("Deine E-Mail", 24, 88, 64, 17)
    GUICtrlSetColor(-1, "")
    $Label1 = GUICtrlCreateLabel("Dein Name:", 24, 24, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, "")
    $Label3 = GUICtrlCreateLabel("Nachricht:", 24, 120, 53, 17)
    GUICtrlSetColor(-1, "")
    if GUICtrlRead($input1) = "" Then
    MsgBox(0, "", "Bitte einene Namen eingeben")
    $Label1 = GUICtrlCreateLabel("Dein Name:", 24, 24, 75, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xff0000)
    elseif GUICtrlRead($input3) = "" Then
    MsgBox(0, "", "Bitte deine Emailadresse eingeben dass" & @lf & "ich dir antworten kann")
    ;GUICtrlSetbkColor($Label4, 0xff0000)
    $Label4 = GUICtrlCreateLabel("Deine E-Mail", 24, 88, 64, 17)
    GUICtrlSetColor(-1, 0xff0000)
    elseif GUICtrlRead($edit1) = "" Then
    MsgBox(0, "", "Bitte eine Nachricht eingeben!")
    $Label3 = GUICtrlCreateLabel("Nachricht:", 24, 120, 53, 17)
    GUICtrlSetColor(-1, 0xff0000)


    Else
    Global $SmtpServer, $FromName, $FromAddress, $ToAddress, $subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl
    ;$body = GUICtrlRead($Edit1 & $input3)
    $reade = guictrlread($edit1)
    $readi = GUICtrlRead($input3)
    $body = $reade & @lf & @lf & "von: " & $readi
    $subject = GUICtrlRead($input2)
    GUICtrlSetState($Button5, $gui_disable)
    GUICtrlSetData($Button5, "wird gesendet...")
    $rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
    If @error Then
    GUICtrlSetState($Button5, $gui_enable)
    GUICtrlSetData($Button5, "Senden")
    MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
    Exit
    EndIf
    MsgBox(0, "Meldung", "Nachricht wurde gesendet")
    Exit
    EndIf

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

    EndSwitch
    WEnd
    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]

    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]

    jetzt besteht halt wie gesagt das problem mit dem passwort

    • Offizieller Beitrag

    Ich sehe kein Passwortproblem.
    Du kannst doch den User beim Erstellen der eMail das Passwort zum Versenden eingeben lassen ohne dieses zu speichern. Für ein (einmaliges) Feedback macht es doch auch keinen Sinn, die eMail-Verbindung des Users in einer INI zu speichern.
    Ich würde überhaupt keine eigene Mailanbindung integrieren, sondern per mailto: das Standardmailprogramm aufrufen.

  • ja aber es war so das ich da extra eine eigene email erstellt habe, sprich es wäre in dem programm mein passwort von der email drinne.

    aber das mit mailto wäre ja auch noch ne möglichkeit. danke

    • Offizieller Beitrag

    ja aber es war so das ich da extra eine eigene email erstellt habe, sprich es wäre in dem programm mein passwort von der email drinne.

    Sowas wäre aber tödlich. Du kannst doch nicht deine Account-Daten weitergeben. Wozu auch. eMails versenden kann doch jeder, selbst noch so schwerfällige User. :D

  • ja drum wollte ich ja das passwort irgendwie verschlüsseln oder sonst irgendwas machen.

    ähm wie funktioniert das mit dem mailto^^
    das ist doch eigentlich html oder

  • Also ich empfehle mal:

    Spoiler anzeigen
    [autoit]


    #include <INet.au3>
    _INetMail("max@mustermann.de","Betreff: Feedback zu Autoitbeitrag ID=14226 ","Bitte fülle die nachfolgenden Punkte komplett aus." & @CRLF & @CRLF &"Nickname:" &@CRLF & @CRLF & "Beitrag:" & @CRLF & "Posting Nummer:" & @CRLF & "Was hast Du dazu zu sagen??? *fg*")

    [/autoit]

    Das ganze sendet dann über das Emailprogramm Deiner Wahl ;)
    Kein Passwort oder Account notwendig.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (30. August 2009 um 00:17)

  • Das ganze habe ich im Büro mir als Blitzmailer geschritet. 20 Button mit Namen der wichtigsten Personen. Wenn eine Kurzmitteilung an Fr. X oder Herrn Y gehen soll, dann reicht das aus. Ist meistens nur für "Mustermann ./. Maier ; AZ: x23334344-Dk-2009 Blatt 127 ist übersetzt und kann abgerufen werden". Da alle 5 Minuten eh an 95% der Büroschreibplätze die Mails automatisch abgerufen werden, kann man sich ab und an so das wählen per Telefon sparen, weil man weiß das dort längere Zeit gesprochen wird.

    Also Verwenungsmöglichkeiten für diese Art Mails zu senden gibt es viel.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr