Envoi de mails avec Gmail

Après avoir lu le fil ci-dessus, j’ai essayé la base de démo HDI_SendMail qui utilise le transporteur mais j’ai eu une anomalie


J’avais enlevé la double sécurité pour permettre aux applications moins sécurisées de se connecter mais, pour info, Google repasse automatiquement en double sécurité.
Après avoir réenlevé la sécurité, cela a fonctionné.
Ce n’est pas très satisfaisant ; on a évoqué sur cette liste l’utilisation d’OAuth2 :

  • quelqu’un l’a-t-il mis en oeuvre ?
  • Vivianne, tu as procédé comment pour te connecter à Gmail ?
  • avec l’IMAP ?

Nous avons utilisé le code de la méthode objet write-pro.Mail de la base projet v18-document-production présentée par Keisuke_Miyako https://discuss.4d.com/users/Keisuke_Miyako sur 4D Summit https://events.4d.com/summit2020/session/document-production/ et remis en ligne par un post 4D Discuss du 30 Avril. Extrait de son code :

$o:=Créer objet
$o.smtp:=Créer objet
$o.smtp.host:=Gmail SMTP Host
$o.smtp.acceptUnsecureConnection:=Faux
$o.smtp.port:=Choisir($o.smtp.acceptUnsecureConnection;465;587)
$o.smtp.user:=Gmail SMTP User
$o.smtp.password:=Gmail SMTP Password
$o.smtp.keepAlive:=Vrai
$o.smtp.connectionTimeOut:=30
$o.smtp.sendTimeOut:=100
$o.mail:=MAIL Convertir depuis MIME($mime)
$o.mail.from:="d03506325@gmail.com"
$o.mail.to:="keisuke.miyako@4D.com"
$o.mail.subject:=“4D Write Pro HTML body”
$status:=SMTP Créer transporteur($o.smtp).send($o.mail)

S’il s’agit d’une machine connue et inscrite sur le compte Gmail de l’expéditeur ça se passe bien.
Sinon, l’IA de Google envoie le message d’erreur cité : BadCredentials… + un message à l’utilisateur de la messagerie, soit :

  • Alerte de sécurité : Connexion sur un nouvel appareil
  • Alerte de sécurité critique. Tentative de connexion bloquée : Quelqu’un vient d’utiliser votre mot de passe pour essayer de se connecter à votre compte à partir d’une application n’appartenant pas à Google

Pour l’IMAP on coince pour le moment mais on y travaille.

Si vous postiez un Feature request sur l’envoi de mail via les serveur Gmail, on pourrait voter pour :wink:

You can also use OAuth for sending email via Gmail.

Once you have a valid token, it is just a simple HTTP Request.

Merci à tous pour vos réponses.
Miyako, did you do it with OAuth2 ?

Is there any other option?

I think Gmail is always 2.0.

2.0 is the easier option for 4D (more work for the server, less work for the client=4D).

Comment fait on sur GitHub pour lire la contribution 4D-JP/4d-tips-google-mail ? Nous avons un peu de texte en japonais. Y a t il du code 4D et comment y accéder ?
Avec quelle instruction 4D peut on utiliser le protocole OAuth ?

J’étais persuadé qu’une boite mail gérée en IMAP devait être accédée en IMAP ; j’ai fait un test avec les commandes POP et ça fonctionne.
Ça vous paraîtra peut-être évident mais pourra aider certains.
HTH en bon français !