E-Mail Script mit übergabe vom Form

  • Hallo zusammen,

    ich nutze folgendes Script zum senden von E-Mails:

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

    ;##################################; Include;###################################Include<file.au3>;##################################; Variables;##################################$SmtpServer = "" ; address for the smtp-server to use - REQUIRED$FromName = "Auftragsanlage" ; name from who the email was sent$FromAddress = "" ; address from where the mail should come$ToAddress = "" ; destination address of the email - REQUIRED$Subject = "Auftragsanlage" ; subject from the email - can be anything you want it to be$Body = "aaa" ; the messagebody from the mail - can be left blank but then you get a blank mail$AttachFiles = "" ; the file(s) you want to attach seperated with a ; (Semicolon) - 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 = "e" ; 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 = 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($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;; The UDFFunc _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 : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console If FileExists($S_Files2Attach[$x]) Then ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF) $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 ;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 HandlerFunc 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 ReturnEndFunc ;==>MyErrFunc

    [/autoit]


    Nun möchte ich aber die Mail von einem Form aus senden die Form sieht folgender Maßen aus: (ganz einfach erstmal gehalten)

    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------
    AutoIt Version: 3.3.10.2 Author: myName
    Script Function: Template AutoIt script.
    #ce ----------------------------------------------------------------------------
    ; Script Start - Add your code below here#include <ButtonConstants.au3>#include <EditConstants.au3>#include <GUIConstantsEx.au3>#include <StaticConstants.au3>#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=$Form1 = GUICreate("Form1", 524, 302, 192, 124)$Name = GUICtrlCreateLabel("Name", 40, 56, 32, 17)$Input1 = GUICtrlCreateInput("Input1", 80, 56, 121, 21)$Message = GUICtrlCreateLabel("Message", 24, 96, 47, 17)$Input2 = GUICtrlCreateInput("Input2", 80, 96, 209, 21)$Senden = GUICtrlCreateButton("Senden", 80, 152, 75, 25, $WS_GROUP)GUISetState(@SW_SHOW)#EndRegion ### END Koda GUI section ###
    While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit
    EndSwitchWEnd

    [/autoit]


    Meine Frage ist nun, wie übergebe ich das, was ich in der Form geschrieben habe an, dass E-Mail-Script? Habe da leider keine Idee.

    Vielen Dank!

    Einmal editiert, zuletzt von Patze (15. Januar 2014 um 15:48)

  • ich denke du solltest zuerst einige Tutorials machen und versuchen selber auf die Lösung zu kommen, weil ich halte es nicht für Sinnvoll hier die Leute deine kopiereten Codezeilen zu deinen gewünschten Script zusammen stellen zu lassen. Bitte melde dich hierzu bei Scriptanfragen....

    Ich gebe dir trotzdem ein Tipp:
    "GUICtrlRead" ...