Da ich eher Anfänger bitte ich um Nachsicht bei Fehlern.
Mit PureBasic 5.22LTS läuft es bei mir.
Habe allerdings ein paar Befehle gestrichen bzw mit ; rausgenommen weil es sonst nicht lief.
Hoffe kann damit mit auch anderen helfen.
Gruß an alle.

Wichtig
COMatePLUS.pbi
muss geladen werden
Code: Alles auswählen
Procedure EMail(SmtpServer.s, FromName.s, FromAddress.s, ToAddress.s, Subject.s, BodyHTML.s, AttachFiles.s, CcAddress.s, BccAddress.s, UserName.s, Password.s, IPPort.l, ssl.l, replyto.s, dispositionnotificationTo.s, ReturnreceiptTo.s, Importance.l, Priorite.l, sensitivity.l, transfert.l)
If OpenWindow(1, 0, 0, 270, 100, "E-mail wird gesendet !", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget (2, 10, 30, 250, 20, "Bitte einen Moment Geduld !", #PB_Text_Center)
StickyWindow(1,1)
EndIf
;========================================================================================
;*
;*
;* Use CDO Object for sending mail with Gmail or any else smtp provider
;* Credit and Thanks to Jos http://www.autoitscript.com/forum/index.php?showtopic=23860
; who write this script in Autoit language and that i ported on
; Purebasic with the help of SROD with his excellent library COMATE
; allow sending secure email, attachments, replY to, notification disposition and more if you want......
;And much more configuration
;===================================================================================
;=============================
;For the priority
;============================
;#cdoPriorityNonUrgent= -1 ; Nonurgent priority
;#cdoPriorityNormal= 0 ; Normal priority
;#cdoPriorityUrgent= 1 ;Urgent priority
;===============================
;For the importance of the mail
;===============================
;#cdoLow= 0 ;Low importance
;#cdoNormal= 1 ;Normal importance
;#cdoHigh= 2 ;High importance
;====================================
;For the sensitivity of the mail
;=================================
;#cdoSensitivityNone= 0 ; None
;#cdoPersonal = 1 ; Personal
;#cdoPrivate = 2 ; Private
;#cdoCompanyConfidential = 3 ; Company Confidential
;================================================
; Beginning of paramters
;================================================
;SmtpServer.s = "smtp-mail.outlook.com" ; address for the smtp-server to use - REQUIRED
;FromName.s = "Name" ; name from who the email was sent
;FromAddress.s = EMail.s ; address from where the mail should come
;ToAddress.s = "muster@outlook.de" ; destination address of the email - REQUIRED
;Subject.s = "HTML With attachments" ; subject from the email - can be anything you want it to be
;Subject.s ="Mustertext"
;Body.s = ""
;BodyHtml.s="<Body background='cid:Fond4.gif' style='background-attachment: fixed; background-repeat: repeat'>"
;BodyHtml = BodyHtml + "Bonjour<BR> Essai<BR><BR><IMG src='cid:medecin.gif' witdh '546' height='100'>"
;bodyHtml = ReplaceString(bodyhtml,"'","$0027")
;CcAddress.s = "" ; address for cc - leave blank if not needed
;BccAddress.s = "" ; address for bcc - leave blank if not needed
;Username.s = "muster@outlook.com" ; username for the account used from where the mail gets sent - REQUIRED
;Password.s = "Password" ; password for the account used from where the mail gets sent - REQUIRED
;IPPort.l = 25 ; port used for sending the mail ex 25 for a normal provider 465 for gmail
;ssl.l = 1 ;0 if you don't use ssl and 1 if you use ssl ex from gmail
;AttachFiles.s= "" ;listing of attach files you want to send
;replyto.s = "muster@hotmail.de" ;where you want To have the reply of these mail
;dispositionnotificationTo.s = "muster@hotmail.de" ;if you want to have a notification
;ReturnreceiptTo.s="muster@hotmail.de" ; where you want to have the receipt of these mail
;Importance.l = #cdoHigh ;High importance; Send message priority: "High=2", "Normal"=1, "Low=0"
;Priorite.l = #cdoPriorityUrgent ;Urgent priority
;sensitivity.l = #cdoCompanyConfidential ; see constants
;transfert.l = 0 ; 0 Ne pas transférer 1 Transfert libre
;=======================================================
; End of paramters
;======================================================
Define.COMateObject objemail,iconf,objbodypart,objbodypart1
objemail = COMate_CreateObject("CDO.Message")
iConf = COMate_CreateObject("CDO.Configuration")
If objemail
objemail\SetProperty("Configuration="+ Str(iconf)+ " as COMateObject" )
objemail\SetProperty("MimeFormatted=1" )
objemail\SetProperty("to='"+ ToAddress +"'")
objemail\SetProperty("from='"+Chr(34)+ FromName + Chr(34)+ "<" + FromAddress + ">" +"'")
objemail\SetProperty("Subject='"+Subject+"'")
objemail\SetProperty(" HTMLBody="+"'"+BodyHTML+"'")
objemail\SetProperty("replyTo ='"+replyto+"'")
If CcAddress <> ""
objemail\SetProperty("Cc ='"+ CcAddress +"'")
EndIf
If BccAddress <> ""
objemail\SetProperty("Bcc ='"+ BccAddress +"'")
EndIf
objemail\SetProperty("Configuration\Fields\Item ('http://schemas.microsoft.com/cdo/configuration/sendusing') = 2" )
objemail\SetProperty("Configuration\Fields\Item ('http://schemas.microsoft.com/cdo/configuration/smtpserver') =" +"'"+ SmtpServer+"'" )
If IPPort = 0
IPPort = 25
EndIf
objemail\SetProperty("Configuration\Fields\Item ('http://schemas.microsoft.com/cdo/configuration/smtpserverport') ="+ Str(IPPort))
;Authenticated SMTP
If Username <> ""
objemail\SetProperty("Configuration\Fields\Item ('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate') =1")
objemail\SetProperty("Configuration\Fields\Item ('http://schemas.microsoft.com/cdo/configuration/sendusername') ="+ "'"+ Username+"'")
objemail\SetProperty("Configuration\Fields\Item ('http://schemas.microsoft.com/cdo/configuration/sendpassword') =" +"'"+ Password +"'" )
EndIf
If ssl
objemail\SetProperty("Configuration\Fields\Item ('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = 2" )
EndIf
;Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP server)
objemail\SetProperty("Configuration\Fields\Item ('http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout') = 60")
;==================
; sensitivity
;================
Select sensitivity
Case #cdoCompanyConfidential
objemail\SetProperty("Fields\Item('urn:schemas:mailheader:Sensitivity') = "+"'"+ "Company-Confidential"+"'")
Case #cdoPersonal
objemail\SetProperty("Fields\Item('urn:schemas:mailheader:Sensitivity') = "+"'"+ "Private"+"'")
Case #cdoPrivate
objemail\SetProperty("Fields\Item('urn:schemas:mailheader:Sensitivity') = "+"'"+ "Personal"+"'")
Case #cdoSensitivityNone
objemail\SetProperty("Fields\Item('urn:schemas:mailheader:Sensitivity') = "+"'"+ "None"+"'")
EndSelect
Select transfert
Case 0
objemail\SetProperty("Fields\Item('urn:schemas:mailheader:X-Message-Flag') = "+"'"+"Nicht weiterleiten"+"'")
Case 1
objemail\SetProperty("Fields\Item('urn:schemas:mailheader:X-Message-Flag') = "+"'"+"kostenloser Transfer"+"'")
EndSelect
objemail\invoke("Configuration\Fields\Update")
Select Priorite
Case #cdoPriorityUrgent
objemail\SetProperty("Fields('urn:schemas:mailheader:X-MSMail-Priority') = 'High'")
objemail\SetProperty("Fields('urn:schemas:mailheader:X-Priority') = " +Str(#cdoPriorityUrgent) )
objemail\SetProperty("Fields('urn:schemas:mailheader:priority') = " +Str(#cdoPriorityUrgent) )
Case #cdoPriorityNormal
objemail\SetProperty("Fields('urn:schemas:mailheader:X-MSMail-Priority') = 'Normal'")
objemail\SetProperty("Fields('urn:schemas:mailheader:X-Priority') = "+Str(#cdoPriorityNormal) )
objemail\SetProperty("Fields('urn:schemas:mailheader:priority') = " +Str(#cdoPriorityNormal) )
Case #cdoPriorityNonUrgent
objemail\SetProperty("Fields('urn:schemas:mailheader:X-MSMail-Priority') = 'Low'")
objemail\SetProperty("Fields('urn:schemas:mailheader:X-Priority') ="+ Str(#cdoPriorityNonUrgent) )
objemail\SetProperty("Fields('urn:schemas:mailheader:priority') = " +Str(#cdoPriorityNonUrgent) )
EndSelect
Select Importance
Case #cdoHigh
objemail\SetProperty("Fields('urn:schemas:httpmail:importance') = " +Str(#cdoHigh) )
Case #cdoNormal
objemail\SetProperty("Fields\Item('urn:schemas:httpmail:importance') = " +Str(#cdoNormal) )
Case #cdoLow
objemail\SetProperty("Fields('urn:schemas:httpmail:importance') = " +Str(#cdoLow) )
EndSelect
objemail\SetProperty("Fields('urn:schemas:mailheader:disposition-notification-to')=" +"'"+dispositionnotificationTo+"'" )
objemail\SetProperty("Fields('urn:schemas:mailheader:return-receipt-to')="+"'"+ReturnreceiptTo + "'")
;Update settings
objemail\invoke("Fields\Update")
;Declaring inline attachments
;objbodypart= objemail\getObjectProperty("AddRelatedBodyPart('C:\Documents and Settings\Administrateur\Bureau\fond4.gif','fond4.gif',1)" )
;objbodypart\SetProperty("Fields('urn:schemas:mailheader:Content-ID') ="+"'<fond4.gif>'")
;objbodypart\invoke("Fields\Update")
;objbodypart1= objemail\getObjectProperty("AddRelatedBodyPart('C:\Documents and Settings\Administrateur\Bureau\medecin.gif','medecin.gif',1)" )
;objbodypart1\SetProperty("Fields('urn:schemas:mailheader:Content-ID') ="+"'<medecin.gif>'")
;objbodypart1\invoke("Fields\Update")
; Sending attach files
If AttachFiles.s <> ""
Resultat.l = CountString(AttachFiles, ";")+1
For x = 1 To Resultat
Files2Attach.s=StringField(AttachFiles, x, ";")
objemail\invoke("AddAttachment (" +"'"+Files2Attach+"'"+")" )
Next
EndIf
;objEmail\Setproperty("DSNOptions = 14")
objemail\invoke("Send")
objemail\Release()
If COMate_GetLastErrorDescription()<>"Okay."
fehler.b=1
Else
fehler.b=0
EndIf
iconf\Release()
;objbodypart\Release()
;objbodypart1\Release()
Else
MessageRequester("Fehler beim erstellen der E-Mail", COMate_GetLastErrorDescription())
Fehler.b=1
EndIf
CloseWindow(1)
UseGadgetList(WindowID(#Kfzeasy))
ProcedureReturn Fehler.b
EndProcedure
Leerzeichen nach Kommata in der Parameterliste einer Prozedur hinzugefügt
15.05.2014
RSBasic