- New configuration possibility
- Another way to send a message with importance to solve a problem
Version 1.2 2008,December,11Th
- Support inline attachments and image
Code: Select all
  ;======================================================================================== 
  ;* 
  ;* 
  ;* 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 
  ;=================================================================================== 
    
    IncludePath ".\essaicomate" 
    XIncludeFile "COMate.pbi" 
    ;=============================
    ;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.xx.com"              ; address for the smtp-server to use - REQUIRED 
  FromName.s = "Jean DURAND"                      ; name from who the email was sent 
  FromAddress.s = "jdurand@gmail.com"     ; address from where the mail should come 
  ToAddress.s = "jdupond@wanadoo.fr"   ; destination address of the email - REQUIRED 
  Subject.s = "HTML With attachments"                   ; subject from the email - can be anything you want it to be 
  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")           
  AttachFiles.s = ""                       ; the files you want to attach- leave you can put multi files separeted by a semicolon ";' ; blank if not needed 
  CcAddress.s = "CCadress1@test.com"       ; address for cc - leave blank if not needed 
  BccAddress.s = "BCCadress1@test.com"     ; address for bcc - leave blank if not needed 
  Username.s = "jeandurand@gmail.com"                    ; username for the account used from where the mail gets sent - REQUIRED 
  Password.s = "jean"                  ; password for the account used from where the mail gets sent - REQUIRED 
  IPPort.l = 465                            ; 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= "" ;listing of attach files you want to send 
  replyto.s = "toto@9toto.fr"  ;where you want To have the reply of these mail 
  dispositionnotificationTo.s = "toto@toto.fr" ;if you want to have a notification 
  ReturnreceiptTo.s="titi@gmail.com"  ; 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"+"'") 
          Debug COMate_GetLastErrorDescription()
      EndSelect         
      
      Select transfert
        Case 0
          objemail\SetProperty("Fields\Item('urn:schemas:mailheader:X-Message-Flag') = "+"'"+"Ne pas Transférer"+"'")
        Case 1
          objemail\SetProperty("Fields\Item('urn:schemas:mailheader:X-Message-Flag') = "+"'"+"Transfert Libre"+"'")
      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)" )
    ;  Debug    COMate_GetLastErrorDescription()
      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 <> "" 
        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()
  iconf\Release()
      objbodypart\Release()
      ,objbodypart1\Release()
    Else 
      MessageRequester("Désolé - Erreur de création de l'objet", COMate_GetLastErrorDescription()) 
    EndIf
   

