_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 Version3.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"358278232156)
$Label1 GUICtrlCreateLabel("Test"24831335)
GUICtrlSetFont(-1204000"Make Juice")
$Label2 GUICtrlCreateLabel("test"16561720)
GUICtrlSetFont(-1104000"MS Sans Serif")
$Label3 GUICtrlCreateLabel("test"16882217)
$input1 GUICtrlCreateInput(""48569721)
$input2 GUICtrlCreateInput(""48969721)
$Exp GUICtrlCreateLabel("test"161523124)
GUICtrlSetFont(-1124000"MS Sans Serif")
$HP GUICtrlCreateLabel("test"161842624)
GUICtrlSetFont(-1124000"MS Sans Serif")
$MP GUICtrlCreateLabel("test"162162724)
GUICtrlSetFont(-1124000"MS Sans Serif")
$Checkbox1 GUICtrlCreateCheckbox("Checkbox1"561521717)
$Checkbox2 GUICtrlCreateCheckbox("Checkbox2"561841717)
$Checkbox3 GUICtrlCreateCheckbox("Checkbox3"562161717)
$DMG GUICtrlCreateLabel("test"1841524224)
GUICtrlSetFont(-1124000"MS Sans Serif")
$Checkbox4 GUICtrlCreateCheckbox("Checkbox4"2481521717)
$Button1 GUICtrlCreateButton("test"20020813749$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 attachleave 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 
enables/disables secure socket layer sending put to 1 if using httpS
;~ $IPPort=465 GMAIL port used for sending the mail
;~ $ssl=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.number8)
$oMyRet[0] = $HexNumber
$oMyRet
[1] = StringStripWS($oMyError.description3)
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
.SendERROR

Anstatt $objEmail
.Send muss es Send($objEmailheiß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...