_INetSmtpMail Probelm

09/09/2010 17:37 B-O#1
Hallo,

es sieht bei mir so aus:


Doch dann kommt immer: Error: Unknown function name

Kann mir jmd. helfen?

Ich würde hier gerne nur hilfreiche beiträge sehen und kein spam^^

bin am verzweifeln egal was ich ändere immer nen error <.<
09/09/2010 17:51 bassbanane#2
Ja wenn es keine _SmtpSend Function gibt, kannst du logischerweise auch keine funktion mit dem namen aufrufen.
Steht doch alles im Scite Editor unten im Log wenn man mal hinguckt.
09/09/2010 17:53 B-O#3
Sry bin grad verwirrt, wie sieht so eine funktion aus nd wo muss die hin?
sry weiß grad nich was los is o.o
09/09/2010 17:57 bassbanane#4
Super, wenn du deinen kompletten Code einfach nur von iwo kopierst bringt das auch nix.
Versuch's doch mal selber anstatt immer gleich zu leechen, so lernt man doch nie was.
09/09/2010 18:00 B-O#5
ja ich möchte doch nen ganzen code haben, damit ich daran arbeiten kann und selbst rausbekomme wofür was ist

und ich finde ja auch kein how to bzw tutorial dazu ...
09/09/2010 18:26 | Moep |#6
Quote:
Originally Posted by B-O View Post
Sry bin grad verwirrt, wie sieht so eine funktion aus nd wo muss die hin?
sry weiß grad nich was los is o.o
Wenn du noch nichtmal weißt was eine funktion ist, dann schau dir am besten nochmal ein par tutorials mit den urschleim an

[Only registered and activated users can see links. Click Here To Register...]
09/09/2010 18:29 B-O#7
Was eine funktion ist weiß ich doch^^
ich suche eig nur nen tut wo das mit der _INetSmtpMail beschrieben ist, oder das mir jmd. das erklärt...
aber naja muss ich iwie wohl selbst hinbekommen
09/09/2010 18:50 | Moep |#8
Hab mich mit emails senden bisher noch nicht weiter beschäftigt.
Aber hier ein par ergebnisse nach kurzen googeln.

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
09/09/2010 18:57 B-O#9
erstmal danke.
beim ersten link kommt kein error und keine msg box, ist das normal so? mh ich gucke mal..

bzw wie bekomm ich ein gui das den text ausliest und mithilfe dieses codes


hin?
09/09/2010 19:24 | Moep |#10
Welcher Text soll denn ausgelesen werden?
Hast du in Zeile 20-33 die für dich zutreffenden Daten eingegeben?
09/09/2010 20:16 B-O#11
So ich hab was anderes gefunden wmit es geht, nun hab ich noch eine Frage dann stör ich nicht mehr^^

So ich hab jetzt einen script der funktioniert, ich habe auch ein gui dazu gemacht nun weiß ich nicht wie autoit die 2 inputboxen auslesen kann

Code


Ich hab erstmal alles durch 'Test' ersetzt.
kannst du mir helfen wie die 2 inputboxen ausgelesen werden können?

zur hilfe der original script

Mit dem orig. script funktioniert alles prima doch ich weiß jetzt nicht wie ich es bei meinem machen soll?
09/09/2010 21:24 | Moep |#12
So?!

Code:
#cs ----------------------------------------------------------------------------

AutoIt Version: 3.3.6.1
Author: XXlolimanxx

Script Function:
Liest den Text aus einer Editbox einer Gui aus und sendet es per E-Mail

#ce ----------------------------------------------------------------------------
Global $SmtpServer , $FromName , $FromAddress , $ToAddress , $Subject , $ssl , $oMyRet , $HexNumber , $oMyError
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Test", 358, 278, 232, 156)
$Label1 = GUICtrlCreateLabel("Test", 24, 8, 313, 35)
GUICtrlSetFont(-1, 20, 400, 0, "Make Juice")
$Label2 = GUICtrlCreateLabel("test", 16, 56, 17, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("test", 16, 88, 22, 17)
$input1 = GUICtrlCreateInput("", 48, 56, 97, 21)
$input2 = GUICtrlCreateInput("", 48, 96, 97, 21)
$Exp = GUICtrlCreateLabel("test", 16, 152, 31, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$HP = GUICtrlCreateLabel("test", 16, 184, 26, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$MP = GUICtrlCreateLabel("test", 16, 216, 27, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 56, 152, 17, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 56, 184, 17, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 56, 216, 17, 17)
$DMG = GUICtrlCreateLabel("test", 184, 152, 42, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Checkbox4 = GUICtrlCreateCheckbox("Checkbox4", 248, 152, 17, 17)
$Button1 = GUICtrlCreateButton("test", 200, 208, 137, 49, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


Func _Senden ()
ProgressOn ("Test","Test E-Mail wird versendet! Bitte warten!","Einstellungen auslesen.",-1,-1,2)

$Bericht = GUICtrlRead ($Edit1)
;
;##################################
; Include
;##################################

;##################################
; Variables
;##################################
$SmtpServer = "mail.gmx.net" ; address for the smtp-server to use - REQUIRED
$FromName = "jonas" ; name from who the email was sent
$FromAddress = "-@gmx.de" ; address from where the mail should come
$ToAddress = "-@hotmail.de" ; destination address of the email - REQUIRED
$Subject = "test" ; subject from the email - can be anything you want it to be
$Body = $Bericht ; 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 = "[Only registered and activated users can see links. Click Here To Register...]" ; address for cc - leave blank if not needed
$BccAddress = "[Only registered and activated users can see links. Click Here To Register...]" ; address for bcc - leave blank if not needed
$Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
$Username = "-@gmx.de" ; 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
;##################################

ProgressSet (50 , "E-Mail wird versendet!")
$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
ProgressSet (100 , "Fertig!")
Sleep (100)
MsgBox (64,"Mp3-Player","E-Mail erfolgreich versendet!")
ProgressOff ()
EndFunc
;
; 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
$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



While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
	$i1 = guictrlread($input1)
	$i2 = guictrlread($input2)
	MsgBox("","","input1:"&$i1&@CRLF&"input2:"&$i2)
_Senden ()
EndSwitch
WEnd
09/09/2010 21:49 B-O#13
naja jetzzt passirt dieser error mit dem script:

Error: Variable used without being declared.

und wenn ich unten hinschreibe :

$Bericht = GUICtrlRead ($input1, $input2)

kommt das gleiche....

also ist da eine variable nicht erkläert oder?
09/10/2010 08:21 | Moep |#14
schau mal in Zeile 45, da wird $Bericht deklariert. Das ist noch ein restbestand von den Original Script.
Bitte probier die Fehlermeldungen zu verstehen und deuten zu können, da wird dir nähmlich schon viel geholfen wenn du Syntax fehler hast.
09/10/2010 13:17 B-O#15
mh ich hab kA was das zu bedueten hat... was muss ich da ändern?

So hab nene neuen error:

the request action with this object has failed -> Der Antrag der Aktion mit diesem Objekt ist fehlgeschlagen

Wenn ich den script so aussehen lasse:

Code:
#cs ----------------------------------------------------------------------------

AutoIt Version: 3.3.6.1
Author: XXlolimanxx

Script Function:
Liest den Text aus einer Editbox einer Gui aus und sendet es per E-Mail

#ce ----------------------------------------------------------------------------
Global $SmtpServer , $FromName , $FromAddress , $ToAddress , $Subject , $ssl , $oMyRet , $HexNumber , $oMyError
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Test", 358, 278, 232, 156)
$Label1 = GUICtrlCreateLabel("Test", 24, 8, 313, 35)
GUICtrlSetFont(-1, 20, 400, 0, "Make Juice")
$Label2 = GUICtrlCreateLabel("test", 16, 56, 17, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("test", 16, 88, 22, 17)
$input1 = GUICtrlCreateInput("", 48, 56, 97, 21)
$input2 = GUICtrlCreateInput("", 48, 96, 97, 21)
$Exp = GUICtrlCreateLabel("test", 16, 152, 31, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$HP = GUICtrlCreateLabel("test", 16, 184, 26, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$MP = GUICtrlCreateLabel("test", 16, 216, 27, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 56, 152, 17, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 56, 184, 17, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 56, 216, 17, 17)
$DMG = GUICtrlCreateLabel("test", 184, 152, 42, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Checkbox4 = GUICtrlCreateCheckbox("Checkbox4", 248, 152, 17, 17)
$Button1 = GUICtrlCreateButton("test", 200, 208, 137, 49, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


Func _Senden ()
ProgressOn ("Test","Test E-Mail wird versendet! Bitte warten!","Einstellungen auslesen.",-1,-1,2)

$Bericht = GUICtrlRead ($input1, $input2)

;
;##################################
; Include
;##################################

;##################################
; Variables
;##################################
$SmtpServer = "mail.gmx.net" ; address for the smtp-server to use - REQUIRED
$FromName = "j-" ; name from who the email was sent
$FromAddress = "-@gmx.de" ; address from where the mail should come
$ToAddress = "-[Only registered and activated users can see links. Click Here To Register...]" ; destination address of the email - REQUIRED
$Subject = "test" ; subject from the email - can be anything you want it to be
$Body = $Bericht ; 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 = "[Only registered and activated users can see links. Click Here To Register...]" ; address for cc - leave blank if not needed
$BccAddress = "[Only registered and activated users can see links. Click Here To Register...]" ; address for bcc - leave blank if not needed
$Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
$Username = "-@gmx.de" ; 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
;##################################

ProgressSet (50 , "E-Mail wird versendet!")
$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
ProgressSet (100 , "Fertig!")
Sleep (100)
MsgBox (64,"Mp3-Player","E-Mail erfolgreich versendet!")
ProgressOff ()
EndFunc
;
; 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
$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



While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
    $i1 = guictrlread($input1)
    $i2 = guictrlread($input2)
    MsgBox("","","input1:"&$i1&@CRLF&"input2:"&$i2)
_Senden ()
EndSwitch
WEnd
Findest du den fehler?