Screenshot per mail versenden

  • Hallo Marcel gmmg.

    Also das Thema ist echt gut.

    Ich bin gerade am überlegen, wie ich Inhalt aus einem Ordner via EMail zustelle, sobald mehr als fünf Dateien in diesem Ordner sind.

    Da kommt mir Dein Beitrag echt recht, wenn auch nur für die Anpassungs zur Datensendung via Email.

    Gruss, Lina.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • hi alina ;)

    das freut mich!

    ich suche noch eine lösung, wie ich die combobox auf den standardwert zurücksetze,
    einen zähler, der bei jedem drücken der tastenkombination, um 1 hochzählt! wenn 5 mal gedrückt, soll kein weiteres drücken möglich sein und eine meldung ausgegeben werden!

    gruß gmmg :P

  • Also ich glaube das mit dem hoch zählen bis fünf sollte über eine *.ini zu lösen sein.

    schau nach dem aktuellen wert der ini (ini lesen) und durch eine Schleife den ausgelesenen Wert verarbeiten. Zuvor oder als erster Arbeitsschritt den Wert um eines erhöhen, bzw. wenn die 5 erreicht ist, die Aktionsausführung "sperren", bis die Aktionen 1-5 abgearbeitet und dann den Wert in der ini wieder auf null setzen. Oder wenn eine Aktion erfolgreich ausgeführt wurde, das dann automatisch sich der Wert der ini um 1 verringert.

    Aber hier müßtest Du wohl viel über die INI-Datei lesen und schauen wie man das ganze unsetzen kann. Ich erstelle mir dafür immer eine Zeichnung. Gerade bei den Schleifen (z. B. If/Elseif/Else), mache ich mir "Papiergedanken". Kennt man doch mit "Ja / Nein-Entscheidungen". Das hilft und so gehe ich sehr oft vor.

    Bin auf den weiteren VErlauf gespannt.

    Gruss, Lina.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • alina,

    habe mir auch schon gedanken gemacht! man könnte bei jedem drücken der tastenkombi auch einen wert in ein array oder in eine datei speichern und wieder auslesen, wenn dann z.b. wert = 5 dann funktion sperren und msgbox ausgeben!

    na mal sehen ob ich die tage dazu komme!
    muss morgen erstmal bei unserem DHCP server die bereiche für die verteilung neu einstellen und noch paar ip telefone konfigurieren und in betrieb nehmen ;)

    na zwischendurch habe ich bestimmt mal bissl zeit!

    gruß gmmg

  • Hallo Marcel.

    Also ich habe auch viel zu tun und mal sehen wann ich da mal zu komme, aber ich arbeite Schritt für Schritt.

    Mal sehen wann es weiter geht.

    Gruss, Lina.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hi,

    so funktioniert es bei mir:

    Spoiler anzeigen
    [autoit]

    #include
    #include
    #include
    #include
    ;#include

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

    HotKeySet("^{F4}", "Capture_start") ;Strg-F4

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

    #Region ### START Koda GUI section ### Form=g:\programme_tools\koda_2007.06.09\forms\mailer.kxf
    GUICreate("Backoffice Tool 1.0 ", 446, 526, 347, 129)
    GUICtrlCreateLabel("STRG + F4 drücken, um Screenshot zu erzeugen!", 24, 464, 238, 17)
    $sendMail_B = GUICtrlCreateButton("Mail senden", 288, 472, 137, 33, 0)
    GUICtrlCreateLabel("Button drücken um Mail zu versenden!", 56, 488, 186, 17)
    $Input2 = GUICtrlCreateInput(@UserName, 136, 88, 289, 21)
    $Combo3 = GUICtrlCreateCombo("", 136, 120, 289, 21)
    GUICtrlSetData(-1, " |IT|Telefonbuchung")
    $Input4 = GUICtrlCreateInput("", 136, 152, 289, 21)
    GUICtrlCreateLabel("Bitte alle Felder ausfüllen!", 24, 16, 160, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Portal:", 24, 64, 34, 17)
    GUICtrlCreateLabel("Expedient:", 24, 96, 54, 17)
    GUICtrlCreateLabel("Buchungsquelle:", 24, 128, 83, 17)
    GUICtrlCreateLabel("E-Mailadresse des KD:", 24, 160, 111, 17)
    GUICtrlCreateLabel("Zus. Fax | Tel. des KD:", 24, 192, 112, 17)
    $Input5 = GUICtrlCreateInput("", 136, 184, 289, 21)
    GUICtrlCreateLabel("Zahlungsart:", 24, 224, 63, 17)
    $Combo1 = GUICtrlCreateCombo("", 136, 56, 289, 25)
    GUICtrlSetData(-1, " |5vorflug.com|5vorflug.de|abocard|bayerntourismus|bcviva|bigxtra|bigxtra.at|bkk|bonprix|bonusferien|budni|dgb|drivefti|flcounter|flieg-ab-basel|fliegen.com|flugbazar|flugbörse|flugbörse rb|fly.de|fly.de gt|fly.de ifa|fly.de sk|fly.de modular sk|fly.de modular big|fly.de zo|flycalabria|fti|fti.at|fti-ferienwelt|gardenresort|gloeckle|hamburgtravel|happydays|kloppenburg|lal|lidlreisen|maxxtravel|mcflight|monorama|myselect|nexgentravel|o2|OT-ERFstadt|rabattferien|rot-weiss-urlaub|schwinges|s-erlebniswelten|skTV-FremdCC|skTV-Rb7723|skTV-Rb7783|skTV-Rb7816|skTV-Rb7838|skTV-Rb7845|skTV-Rb7856|skTV-Rb7916|skTV-Rb7931|skTV-Rb7989|skTV-Rb7991|skTV-Rb8078|skTV-Rb8093|SkTV-Rb8107|skTV-Rb8204|skTV-Rb8232|skTV-Rb8240|skTV-Rb8241|skTV-Rb8281|skTV-Rb8280|skTV-Rb8272|skTV-Rb8295|skTV-Rb8310|skTV-Rb8339|skTV-Rb8357|skTV-Rb8410|skTV-Rb8432|skTV-Rb8508|skTV-Rb8554|skTV-Rb8556|sonnenklarTV|sonnenklarTV web|Sonstiges|tv14|tvmovie|weltbild.at|weltbild.de")
    $Combo2 = GUICtrlCreateCombo("", 136, 216, 289, 25)
    GUICtrlSetData(-1, " |Veranstalterinkasso|Veranstalterinkasso - Kreditkarte|Agenturinkasso - Überweisung|Agenturinkasso - Laschrift")
    GUICtrlCreateLabel("Sonstige Notizen:", 24, 288, 87, 17)
    $Edit1 = GUICtrlCreateEdit("", 24, 312, 401, 137)
    GUICtrlSetData(-1, "")
    GUICtrlCreateLabel("Status der Buchung:", 24, 256, 101, 17)
    $Combo4 = GUICtrlCreateCombo("", 136, 248, 289, 25)
    GUICtrlSetData(-1, " |Buchung|Option|Anfrage")
    $Checkbox1 = GUICtrlCreateCheckbox("Dringend", 136, 288, 193, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ;##################################
    ; Variables
    ;##################################
    $s_SmtpServer = "mail.gmx.net" ; address for the smtp-server to use - REQUIRED
    $s_FromName = @UserName ;@UserName ; name from who the email was sent
    $s_FromAddress = "XXXX" ; address from where the mail should come
    $s_ToAddress = "XXXX" ; destination address of the email - REQUIRED
    $s_Subject = "xxxxxx " ; subject from the email - can be anything you want it to be$s_CcAddress = "steuerung@ostteam.de"
    $as_Body = @CRLF & @CRLF & "MfG" & @CRLF & @UserName; the messagebody from the mail - can be left blank but then you get a blank mail
    ;$s_AttachFiles = "C:\Dokumente und Einstellungen\marcel.graf.OSTTEAM\Eigene Dateien\screenshot\screenshot_1.jpg;C:\Dokumente und Einstellungen\marcel.graf.OSTTEAM\Eigene Dateien\screenshot\screenshot_2.jpg" ; the file you want to attach- leave blank if not needed
    ;$s_AttachFiles = $a1&";"&$a2 ; the file you want to attach- leave blank if not needed
    $s_CcAddress = "" ; address for cc - leave blank if not needed
    $s_BccAddress = " "
    $s_Username = "XXXX" ; username for the account used from where the mail gets sent - Optional (Needed for eg GMail)
    $s_Password = "XXXX" ; password for the account used from where the mail gets sent - Optional (Needed for eg GMail)
    $IPPort = 25 ; port used for sending the mail
    $ssl = 0

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

    ;-------begin username auflösen----
    ;$user = _ADSamAccountNameToFQDN(@UserName)

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

    ;$user_split = StringSplit($user, ",")
    ;$user_split1 = StringSplit($user_split[1], "=")

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

    ;$username = $user_split1[2]

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

    ;~ ;MsgBox(0,"","Hallo " & $username & "," &@CRLF & "das Tool wird gestartet!" ,3)
    ;-------ende username auflösen----

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

    ;-------------------------------------
    ;HotKeySet("^{F4}", "Capture_start") ;Strg-F4
    ;HotKeySet("^{F9}") ;Strg-F9

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

    ;HotKeySet("{PRINTSCREEN}", "Capture_start")
    ;HotKeySet("+!d", "Capture_start") ;Shift-Alt-d
    ;--------------------------------------

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

    Global $re_A, $username = @UserName
    ;--function dateien in array lesen--

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

    Func _getFilePathes($sPath, $sFilter = '(*.*)', $iFlag = 0)
    Local $FileList = _FileListToArray($sPath, $sFilter, $iFlag)
    If @error Then Return (@error * (-1))
    Local $re_A = ''
    For $i = 1 To UBound($FileList) - 1
    $re_A &= $sPath & '\' & $FileList[$i] & ';'
    Next
    Return StringTrimRight($re_A, 1)
    EndFunc ;==>_getFilePathes

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

    $t1 = "----------------------------------------------" & @CRLF

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $sendMail_B

    ;######################################
    ; checkbox1 auf wert prüfen
    ;######################################
    If GUICtrlRead($Checkbox1, $GUI_CHECKED) = $GUI_CHECKED Then
    $cb1 = GUICtrlRead($Checkbox1, $GUI_CHECKED)
    Else
    $cb1 = GUICtrlRead($Checkbox1, $GUI_UNCHECKED) = $GUI_UNCHECKED
    EndIf

    If $cb1 = False Then
    $cba1 = GUICtrlRead($Checkbox1, $GUI_CHECKED)
    Else
    $cba1 = " "
    EndIf

    ;-------------------------------
    ;inhalt prüfen
    ;-------------------------------

    $i2 = GUICtrlRead($Input2)
    $i4 = GUICtrlRead($Input4)
    $i5 = GUICtrlRead($Input5)
    $cbo1 = GUICtrlRead($Combo1)
    $cbo2 = GUICtrlRead($Combo2)
    $cbo3 = GUICtrlRead($Combo3)
    $cbo4 = GUICtrlRead($Combo4)
    $edit = GUICtrlRead($Edit1)
    ;---------------------------------------
    ; mailbody
    ;---------------------------------------
    $mbody = ($t1 & "Portal: " & @CRLF & $cbo1 & @CRLF & $t1 & _
    "Expedient: " & @CRLF & $i2 & @CRLF & $t1 & "Buchungsquelle: " & _
    @CRLF & $cbo3 & @CRLF & $t1 & "E-Mailadresse des KD: " & @CRLF & $i4 & _
    @CRLF & $t1 & "Zus. Fax | Tel. des KD: " & @CRLF & $i5 & @CRLF & $t1 & _
    "Zahlungsart: " & @CRLF & $cbo2 & @CRLF & $t1 & "Status der Buchung: " & _
    @CRLF & $cbo4 & @CRLF & $t1 & "Sonstige Notizen: " & @CRLF & $edit & @CRLF & $t1)
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    ;--dateien in array lesen
    $re = _getFilePathes(@MyDocumentsDir & "\mail_screenshot", '*.jpg')
    _ArrayDisplay($re)
    ;##################################
    ; Script
    ;##################################

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    $rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $re, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl)
    If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
    EndIf
    EndSwitch
    WEnd

    [/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_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

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

    ; 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]

    ;screenshot files löschen
    FileDelete(@MyDocumentsDir & "\mail_screenshot\*.*")

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

    ;GUICtrlSetData($Input2, "")
    ;GUICtrlSetData($Combo1, "")
    ;GUICtrlSetData($Combo2, " |Veranstalterinkasso|Veranstalterinkasso - Kreditkarte|Agenturinkasso - Überweisung|Agenturinkasso - Laschrift")
    ;GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Input4, "")
    GUICtrlSetData($Input5, "")
    GUICtrlSetData($Edit1, "")
    ControlCommand("", "Dringend", $Checkbox1, "UnCheck", "")
    $s_AttachFiles = ""

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

    ; function capture screenshot
    Func Capture_start()
    ; Capture full screen
    If FileExists(@MyDocumentsDir & "\mail_screenshot") Then
    ;MsgBox(4096, "C:\autoexec.bat File", "Exists")
    Else
    ;MsgBox(4096,"C:\autoexec.bat File", "Does NOT exists")
    DirCreate(@MyDocumentsDir & "\mail_screenshot")
    EndIf
    ;FileDelete(@MyDocumentsDir & "\Printscreen*.*"
    _ScreenCapture_Capture(@MyDocumentsDir & "\mail_screenshot\screenshot_" & @HOUR & @MIN & @SEC & ".jpg")
    MsgBox(0, "", "Screenshot erstellt!", 1)

    EndFunc ;==>Capture_start

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

    Func IsMemberOf($group, $user)
    If StringLeft($group, 3) <> "CN=" Then
    $group = "CN=" & $group
    EndIf
    Dim $usergroups[1], $i = 1
    Dim $objConnection, $oUsr
    $objConnection = ObjCreate("ADODB.Connection") ; Create COM object to AD
    $objConnection.Provider = "ADsDSOObject"
    $objConnection.Open("Active Directory Provider") ; Open connection to AD
    $objRootDSE = ObjGet("LDAP://RootDSE")
    Global $strDNSDomain = $objRootDSE.Get("defaultNamingContext") ; Retrieve the current AD domain name
    $strQuery = ";(sAMAccountName=" & $user & ");ADsPath;subtree"
    $objRecordSet = $objConnection.Execute($strQuery) ; Retrieve the FQDN for the logged on user
    $ldap_entry = $objRecordSet.fields(0).value
    $oUsr = ObjGet($ldap_entry) ; Retrieve the COM Object for the logged on user
    $groups = $oUsr.groups ; Get the list of group objects from the user

    For $groupname In $groups
    If $groupname.name = $group Then Return 1
    Next
    Return 0
    EndFunc ;==>IsMemberOf

    [/autoit]

    So long,

    Mega
    </LDAP:></adfunctions.au3></File.au3></ScreenCapture.au3></GUIConstants.au3></Array.au3>

  • @Xenobiologist

    Welche AutoIt Version nutzt Du. Habe mit Deinem Tool versucht das was Du zum Schluß gepostest hast, aber die Includes findet er nicht :(

    LG, Lina.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • guten morgen mega,

    deine version funktioniert soweit sehr gut,
    wenn aber kein scrennshot vorhanden ist und ich klicke auf senden, dann kommt folgende fehlermeldung:
    "Error Code:1 Description:0"

    desweiteren, werden die files nach versenden aus dem ordner nicht gelöscht und es kommt bei $mbody die fehlermeldung:
    ==> Variable used without being declared.:
    $as_Body = $mbody
    das gleiche bei $s_Subject = "xxxxxx " & $cba1

    steht die definition dieser an falscher stelle im quelltext?

    gruß gmmg

  • hi mega,

    danke erstmal für deine mühe ;)
    habe das jetzt so umgebaut, das meine zusammengesetzten variablen auch wieder funktionieren!

    Spoiler anzeigen
    [autoit]


    #include
    #include
    #include
    #Include
    #include

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

    HotKeySet("^{F4}", "Capture_start") ;Strg-F4

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

    #Region ### START Koda GUI section ### Form=g:\programme_tools\koda_2007.06.09\forms\mailer.kxf
    GUICreate("Backoffice Tool 1.0 ", 446, 526, 347, 129)
    GUICtrlCreateLabel("STRG + F4 drücken, um Screenshot zu erzeugen!", 24, 464, 238, 17)
    $sendMail_B = GUICtrlCreateButton("Mail senden", 288, 472, 137, 33, 0)
    GUICtrlCreateLabel("Button drücken um Mail zu versenden!", 56, 488, 186, 17)
    $Input2 = GUICtrlCreateInput(@UserName, 136, 88, 289, 21)
    $Combo3 = GUICtrlCreateCombo("", 136, 120, 289, 21)
    GUICtrlSetData(-1, " |IT|Telefonbuchung")
    $Input4 = GUICtrlCreateInput("", 136, 152, 289, 21)
    GUICtrlCreateLabel("Bitte alle Felder ausfüllen!", 24, 16, 160, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Portal:", 24, 64, 34, 17)
    GUICtrlCreateLabel("Expedient:", 24, 96, 54, 17)
    GUICtrlCreateLabel("Buchungsquelle:", 24, 128, 83, 17)
    GUICtrlCreateLabel("E-Mailadresse des KD:", 24, 160, 111, 17)
    GUICtrlCreateLabel("Zus. Fax | Tel. des KD:", 24, 192, 112, 17)
    $Input5 = GUICtrlCreateInput("", 136, 184, 289, 21)
    GUICtrlCreateLabel("Zahlungsart:", 24, 224, 63, 17)
    $Combo1 = GUICtrlCreateCombo("", 136, 56, 289, 25)
    GUICtrlSetData(-1, " |5vorflug.com|5vorflug.de|abocard|bayerntourismus|bcviva|bigxtra|bigxtra.at|bkk|bonprix|bonusferien|budni|dgb|drivefti|flcounter|flieg-ab-basel|fliegen.com|flugbazar|flugbörse|flugbörse rb|fly.de|fly.de gt|fly.de ifa|fly.de sk|fly.de modular sk|fly.de modular big|fly.de zo|flycalabria|fti|fti.at|fti-ferienwelt|gardenresort|gloeckle|hamburgtravel|happydays|kloppenburg|lal|lidlreisen|maxxtravel|mcflight|monorama|myselect|nexgentravel|o2|OT-ERFstadt|rabattferien|rot-weiss-urlaub|schwinges|s-erlebniswelten|skTV-FremdCC|skTV-Rb7723|skTV-Rb7783|skTV-Rb7816|skTV-Rb7838|skTV-Rb7845|skTV-Rb7856|skTV-Rb7916|skTV-Rb7931|skTV-Rb7989|skTV-Rb7991|skTV-Rb8078|skTV-Rb8093|SkTV-Rb8107|skTV-Rb8204|skTV-Rb8232|skTV-Rb8240|skTV-Rb8241|skTV-Rb8281|skTV-Rb8280|skTV-Rb8272|skTV-Rb8295|skTV-Rb8310|skTV-Rb8339|skTV-Rb8357|skTV-Rb8410|skTV-Rb8432|skTV-Rb8508|skTV-Rb8554|skTV-Rb8556|sonnenklarTV|sonnenklarTV web|Sonstiges|tv14|tvmovie|weltbild.at|weltbild.de")
    $Combo2 = GUICtrlCreateCombo("", 136, 216, 289, 25)
    GUICtrlSetData(-1, " |Veranstalterinkasso|Veranstalterinkasso - Kreditkarte|Agenturinkasso - Überweisung|Agenturinkasso - Laschrift")
    GUICtrlCreateLabel("Sonstige Notizen:", 24, 288, 87, 17)
    $Edit1 = GUICtrlCreateEdit("", 24, 312, 401, 137)
    GUICtrlSetData(-1, "")
    GUICtrlCreateLabel("Status der Buchung:", 24, 256, 101, 17)
    $Combo4 = GUICtrlCreateCombo("", 136, 248, 289, 25)
    GUICtrlSetData(-1, " |Buchung|Option|Anfrage")
    $Checkbox1 = GUICtrlCreateCheckbox("Dringend", 136, 288, 193, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ;-------begin username auflösen----
    $user = _ADSamAccountNameToFQDN(@UserName)

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

    $user_split = StringSplit($user, ",")
    $user_split1 = StringSplit($user_split[1], "=")

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

    $username = $user_split1[2]

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

    ;~ ;MsgBox(0,"","Hallo " & $username & "," &@CRLF & "das Tool wird gestartet!" ,3)
    ;-------ende username auflösen----

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

    ;-------------------------------------
    ;HotKeySet("^{F4}", "Capture_start") ;Strg-F4
    ;HotKeySet("^{F9}") ;Strg-F9

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

    ;HotKeySet("{PRINTSCREEN}", "Capture_start")
    ;HotKeySet("+!d", "Capture_start") ;Shift-Alt-d
    ;--------------------------------------

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

    Global $re_A, $username = @UserName, $mbody, $cba1
    ;--function dateien in array lesen--

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

    Func _getFilePathes($sPath, $sFilter = '(*.*)', $iFlag = 0)
    Local $FileList = _FileListToArray($sPath, $sFilter, $iFlag)
    If @error Then Return (@error * (-1))
    Local $re_A = ''
    For $i = 1 To UBound($FileList) - 1
    $re_A &= $sPath & '\' & $FileList[$i] & ';'
    Next
    Return StringTrimRight($re_A, 1)
    EndFunc ;==>_getFilePathes

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

    $t1 = "----------------------------------------------" & @CRLF

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $sendMail_B

    ;######################################
    ; checkbox1 auf wert prüfen
    ;######################################
    If GUICtrlRead($Checkbox1, $GUI_CHECKED) = $GUI_CHECKED Then
    $cb1 = GUICtrlRead($Checkbox1, $GUI_CHECKED)
    Else
    $cb1 = GUICtrlRead($Checkbox1, $GUI_UNCHECKED) = $GUI_UNCHECKED
    EndIf

    If $cb1 = False Then
    $cba1 = GUICtrlRead($Checkbox1, $GUI_CHECKED)
    Else
    $cba1 = " "
    EndIf

    ;-------------------------------
    ;inhalt prüfen
    ;-------------------------------

    $i2 = GUICtrlRead($Input2)
    $i4 = GUICtrlRead($Input4)
    $i5 = GUICtrlRead($Input5)
    $cbo1 = GUICtrlRead($Combo1)
    $cbo2 = GUICtrlRead($Combo2)
    $cbo3 = GUICtrlRead($Combo3)
    $cbo4 = GUICtrlRead($Combo4)
    $edit = GUICtrlRead($Edit1)
    ;---------------------------------------
    ; mailbody
    ;---------------------------------------
    $mbody = ($t1 & "Portal: " & @CRLF & $cbo1 & @CRLF & $t1 & _
    "Expedient: " & @CRLF & $i2 & @CRLF & $t1 & "Buchungsquelle: " & _
    @CRLF & $cbo3 & @CRLF & $t1 & "E-Mailadresse des KD: " & @CRLF & $i4 & _
    @CRLF & $t1 & "Zus. Fax | Tel. des KD: " & @CRLF & $i5 & @CRLF & $t1 & _
    "Zahlungsart: " & @CRLF & $cbo2 & @CRLF & $t1 & "Status der Buchung: " & _
    @CRLF & $cbo4 & @CRLF & $t1 & "Sonstige Notizen: " & @CRLF & $edit & @CRLF & $t1)
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    ;--dateien in array lesen
    $re = _getFilePathes(@MyDocumentsDir & "\mail_screenshot", '*.jpg')
    _ArrayDisplay($re)

    ;##################################
    ; Variables
    ;##################################
    $s_SmtpServer = "10.*****" ; address for the smtp-server to use - REQUIRED
    $s_FromName = @UserName ;@UserName ; name from who the email was sent
    $s_FromAddress = @UserName & "@****.de" ; address from where the mail should come
    $s_ToAddress = "test@*****.de" ; destination address of the email - REQUIRED
    $s_Subject = "xxxxxx " & $cba1 ; subject from the email - can be anything you want it to be"
    $as_Body = $mbody & @CRLF & @CRLF & "MfG" & @CRLF & $username; the messagebody from the mail - can be left blank but then you get a blank mail
    ;$s_AttachFiles = "C:\Dokumente und Einstellungen\*******Eigene Dateien\screenshot\screenshot_1.jpg;C:\Dokumente und Einstellungen\*********\Eigene Dateien\screenshot\screenshot_2.jpg" ; the file you want to attach- leave blank if not needed
    ;$s_AttachFiles = $a1&";"&$a2 ; the file you want to attach- leave blank if not needed
    $s_CcAddress = "" ; address for cc - leave blank if not needed
    $s_BccAddress = " "
    $s_Username = "*****" ; username for the account used from where the mail gets sent - Optional (Needed for eg GMail)
    $s_Password = "******" ; password for the account used from where the mail gets sent - Optional (Needed for eg GMail)
    $IPPort = 25 ; port used for sending the mail
    $ssl = 0 ; 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

    ;##################################
    ; Script
    ;##################################

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    $rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $re, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl)
    If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
    EndIf

    ;screenshot files löschen
    FileDelete(@MyDocumentsDir & "\mail_screenshot\*.*")

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

    ;GUICtrlSetData($Input2, "")
    ;GUICtrlSetData($Combo1, "")
    ;GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Input4, "")
    GUICtrlSetData($Input5, "")
    GUICtrlSetData($Edit1, "")
    ControlCommand("", "Dringend", $Checkbox1, "UnCheck", "")
    $s_AttachFiles = ""
    EndSwitch
    WEnd

    [/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_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

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

    ; 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]

    ; function capture screenshot
    Func Capture_start()
    ; Capture full screen
    If FileExists(@MyDocumentsDir & "\mail_screenshot") Then
    ;MsgBox(4096, "C:\autoexec.bat File", "Exists")
    Else
    ;MsgBox(4096,"C:\autoexec.bat File", "Does NOT exists")
    DirCreate(@MyDocumentsDir & "\mail_screenshot")
    EndIf
    ;FileDelete(@MyDocumentsDir & "\Printscreen*.*"
    _ScreenCapture_Capture(@MyDocumentsDir & "\mail_screenshot\screenshot_" & @HOUR & @MIN & @SEC & ".jpg")
    MsgBox(0, "", "Screenshot erstellt!", 1)

    EndFunc ;==>Capture_start

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

    Func IsMemberOf($group, $user)
    If StringLeft($group, 3) <> "CN=" Then
    $group = "CN=" & $group
    EndIf
    Dim $usergroups[1], $i = 1
    Dim $objConnection, $oUsr
    $objConnection = ObjCreate("ADODB.Connection") ; Create COM object to AD
    $objConnection.Provider = "ADsDSOObject"
    $objConnection.Open("Active Directory Provider") ; Open connection to AD
    $objRootDSE = ObjGet("LDAP://RootDSE")
    Global $strDNSDomain = $objRootDSE.Get("defaultNamingContext") ; Retrieve the current AD domain name
    $strQuery = ";(sAMAccountName=" & $user & ");ADsPath;subtree"
    $objRecordSet = $objConnection.Execute($strQuery) ; Retrieve the FQDN for the logged on user
    $ldap_entry = $objRecordSet.fields(0).value
    $oUsr = ObjGet($ldap_entry) ; Retrieve the COM Object for the logged on user
    $groups = $oUsr.groups ; Get the list of group objects from the user

    For $groupname In $groups
    If $groupname.name = $group Then Return 1
    Next
    Return 0
    EndFunc ;==>IsMemberOf

    [/autoit]

    habe den fehler, wenn keine datei vorhanden, auch noch nicht beheben können!
    wie kann ich nach dem mailversand, das formular zurücksetzen, ausgewählte einträge einer combobox u.a ?

    gruß gmmg
    </adfunctions.au3></Array.au3></GUIConstants.au3></ScreenCapture.au3></File.au3>

    • Offizieller Beitrag

    Hi,

    änder die Funktion in diese

    [autoit]

    Func _getFilePathes($sPath, $sFilter = '(*.*)', $iFlag = 0)
    Local $FileList = _FileListToArray($sPath, $sFilter, $iFlag)
    If @error Then Return ''
    Local $re_A = ''
    For $i = 1 To UBound($FileList) - 1
    $re_A &= $sPath & '\' & $FileList[$i] & ';'
    Next
    Return StringTrimRight($re_A, 1)
    EndFunc ;==>_getFilePathes

    [/autoit]

    So long,

    Mega

  • hi mega,

    funktioniert wunderbar! :thumbup:

    weißt du zufällig, wie ich eine combobox, die mit koda erzeugt wurde, bei meinem beispiel nach drücken des buttons mailversand, auf den folgenden wert zurückgesetzt wird ? der wert soll der sein, der beim starten des scriptes auch vorhanden ist!

    #Region ### START Koda GUI section ###
    $Form1 = GUICreate("Backoffice Tool 1.0 ", 446, 526, 347, 129)
    $Combo1 = GUICtrlCreateCombo("", 136, 120, 289, 21)
    GUICtrlSetData($Combo1, " |Wert1|Wert2")

    gruß gmmg

    2 Mal editiert, zuletzt von gmmg (19. Dezember 2007 um 10:44)