_INetSmtpMail Probelm

09/10/2010 13:46 luckkylooser#16
Also mir hat es das angezeigt:
PHP Code:
ERROR: _PathFull(): undefined function. 
Und nach anschauen der Funktion in der Hilfe fiel mir auf, dass du
PHP Code:
#include <File.au3> 
vergessen hast.

So klappt alles:

PHP 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>
#include <File.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
Send
($objEmail)
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 
So jetzt klappt alles.
09/10/2010 13:50 B-O#17
nein geht auch nicht... The request action with this object has failed
09/10/2010 13:53 luckkylooser#18
Also bei mir klappt alles. Kopier mal meins und füge es in eine neue au3 Datei ein.

Edit: Jetzt seh ichs auch:

PHP Code:
(143) : ==> The requested action with this object has failed.:
$objEmail.Send
$objEmail
.Send^ ERROR

Anstatt $objEmail
.Send muss es Send($objEmail) heißen. 
Schau dir die Funktion nochmal an. Ich muss mir die jetzt auch nochmal anschauen, da ich noch nie damit gearbeitet habe. Ich schätze mal, dass es die Funktion garnicht so gibt.

EDIT: DAS OBERE SCRIPT VON MIR GEHT NUN!
09/10/2010 14:43 B-O#19
jetzt kommt kein error mehr aber bei mir kommt auch keine mail an^^ ich mach eben nen video und ne andere mail...

bei einer neuen mail funktioniert es auch nicht...