Re: Mail-Lib - E-Mail versenden
Verfasst: 14.05.2014 21:38
Ich nutze das Beispiel aus dem Englischen Forum
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
__________________________________________________
Leerzeichen nach Kommata in der Parameterliste einer Prozedur hinzugefügt
15.05.2014
RSBasic
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