[R] Fonction _INetSmtpMailCom et STARTTLS

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 400
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

[R] Fonction _INetSmtpMailCom et STARTTLS

#1

Message par scorp84 »

Bonjour à tous,

J'utilisais pour envoyer les mails la fonction _INetSmtpMailCom et cela fonctionnait nickel sauf que nous avons migré sur Outlook 365 et la fonction ne fonctionne plus.

Je pense que le problème vient du chiffrement qui n'est plus SSL mais STARTTLS.

Les paramètres du serveur smtp sont :
Serveur: smtp.office365.com
Port : 587
Chiffrement: STARTTLS

J'ai mis le port à 587 et ssl à 1.

Voici la fonction :
Func _INetSmtpMailCom($mail_A, $mail_objet = "", $mail_texte = "", $mail_pj = "", $mail_CC = "", $mail_CCI = "")


   $s_SmtpServer = "smtp.office365.com" ; Serveur SMTP
   $s_FromName = "RAPPORT AUTOIT" ; Nom expéditeur
   $s_FromAddress = "xxx" ; Mail expéditeur
   ;$mail_pj = "" ; Pièce jointe (à laisser vide si pas de PJ)
   $mail_CC = "" ; Mail de copie (à laisser vide si non nécessaire)
   $mail_CCI = "" ; Mail de copie invisible (à laisser vide si non nécessaire)
   $s_Username = "xxx" ; Login compte mail
   $s_Password="xxx"
   $s_IPPort = 587 ; Port SMTP : 465 pour SSL / 25 pour non SSL
   $s_ssl = 1 ; Mettre 1 si envoi en SSL, sinon 0


   $objEmail = ObjCreate("CDO.Message")
   $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
   $objEmail.To = $mail_A
   Local $i_Error = 0
   Local $i_Error_desciption = ""
   If $mail_CC <> "" Then $objEmail.Cc = $mail_CC
   If $mail_CCI <> "" Then $objEmail.Bcc = $mail_CCI
   $objEmail.Subject = $mail_objet
   If StringInStr($mail_texte,"<") and StringInStr($mail_texte,">") Then
      $objEmail.HTMLBody = $mail_texte
   Else
      $objEmail.Textbody = $mail_texte & @CRLF
   EndIf
   If $mail_pj <> "" Then
      Local $S_Files2Attach = StringSplit($mail_pj, ";")
      For $x = 1 To $S_Files2Attach[0]
         $S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
         If FileExists($S_Files2Attach[$x]) Then
            $objEmail.AddAttachment ($S_Files2Attach[$x])
         Else
            $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
            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
   $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $s_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 $s_ssl Then
      $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
   EndIf
;Update settings
   $objEmail.Configuration.Fields.Update
; Sent the Message
   $objEmail.Send
   if @error then
      SetError(2)
      return $oMyRet[1]
   EndIf
EndFunc ;==>_INetSmtpMailCom
Quelqu'un aurait-il une idée pour paramétrer le STARTTLS ?

Merci d'avance.

Cordialement.

BM
Modifié en dernier par scorp84 le lun. 01 juil. 2019 15:40, modifié 1 fois.
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Fonction _INetSmtpMailCom et STARTTLS

#2

Message par walkson »

Bonjour,
Je ne vais pas être d'une grande aide pour Outlook 365 que je n'utilise pas mais je me demandais si c'était indispensable d'utiliser OutLook sachant que c'est pour du SMTP, donc pour l'envoi de mails. Un compte à Gmail, Laposte ou autre et utiliser leur SMTP ne ferait pas l'affaire ?
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 400
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

Re: [..] Fonction _INetSmtpMailCom et STARTTLS

#3

Message par scorp84 »

Bonjour,

Merci pour votre réponse.

En fait, j'aimerai que cela soit "propre" et que l'expéditeur affiché soit un de nos comptes et non pas un compte Gmail.

Cordialement.

BM
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Fonction _INetSmtpMailCom et STARTTLS

#4

Message par walkson »

Sinon il y a l'UDF OutlookEX de Water sur le forum US mais je ne sais pas s'il fonctionne pour Outlook 365
Il me semble aussi qu'il faut débloquer outlook sur leur site pour utiliser un application (tout comme Gmail d'ailleurs)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 400
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

Re: [..] Fonction _INetSmtpMailCom et STARTTLS

#5

Message par scorp84 »

Bonjour,

Merci encore pour votre réponse.

Je vais tester...

Cordialement.

BM
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 400
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

Re: [..] Fonction _INetSmtpMailCom et STARTTLS

#6

Message par scorp84 »

Bonjour,

J'ai testé l'UDF mais il semble qu'il soit pour le client lourd Outlook.

Je vais partir sur votre idée d'utiliser un compte Gmail.

Merci pour votre aide.

Cordialement.

BM
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [R] Fonction _INetSmtpMailCom et STARTTLS

#7

Message par walkson »

Bonjour,
juste après $objEmail.Subject = $mail_objet
vous pouvez rajouter $objEmail.replyTo= Chr(34) & "scorp84 " & Chr(34)&"<" & "scorp84 @orange.fr"& ">"
La réponse au mail sera votre adresse :D
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 400
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

Re: [R] Fonction _INetSmtpMailCom et STARTTLS

#8

Message par scorp84 »

... Toujours une solution :D

Très bonne idée.

Merci beaucoup.

BM
Répondre