Mail avec lien de validation

Signaler
Messages postés
823
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
20 septembre 2020
-
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020
-
Bonjour,
Quand on s'inscrit sur certains sites on reçoit un mail contenant un lien sur lequel on doit cliquer pour valider l'inscription.
Je voudrais faire qqch de similaire en VB6.

Actuellement le programme VB6 envoie un mail contenant un code d'accès qu'on doit recopier dans une textbox du programme; ce simple copier/coller semble poser problème à certains utilisateurs.
Plus précisément VB6 invoque un script php, c'est ce script qui envoie le mail avec mail().
Je voudrais mettre dans ce mail un lien cliquable : comment faire pour que le programme VB6 "sache" qu'on a cliqué sur le lien ?

Merci d'avance

9 réponses

Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020
437
Bonjour

Je n'ai jamais fait ce genre de chose, mais je te présente mon cheminement de pensée.

Comme tu l'as souligné, c'est souvent une procédure que l'on voit pour des sites internets.
Cela veut dire qu'il y a dialogue entre le client et le serveur.

Si tu veux mettre en place ce système, il te faut aussi établir un dialogue.
  • Le client (ton logiciel) envoie une requête au serveur.
  • Celui-ci répond par un mail avec le lien.
  • L'utilisateur clique sur le lien.
  • Le serveur traite l'inscription et envoie une activation au client.


On pourrait imaginer que lors de la requête le client donne l'IP du PC au serveur, ainsi le serveur sait à qui répondre.
Si tu es sur un réseau interne ça devrait le faire.
Mais si ça se passe par internet alors il faut passer la box, ce qui veut dire que le client doit être en mesure de connaitre l'IP du PC sur le réseau local et l'IP de la box sur internet.
Aussi la box et windows doivent laisser ta communication sans encombre, par ce que si l'utilisateur doit aller bidouiller dans le parefeu de windows et faire un routage de ports dans la box alors que copier/coller un code d'activation lui parait trop compliqué c'est pas gagné.

Je ne suis pas un grand spécialiste des communications réseau et encore moins en VB6, mais je crois que c'est par là que tu dois gratter.
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020
437
D'ailleurs pour simplifier encore plus, si tu arrives à faire dialoguer le serveur et le client, tu n'as pas besoin d'email, tu peux afficher les différentes étapes directement dans ton logiciel
Messages postés
823
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
20 septembre 2020
2
Merci pour ta réponse,
La raison de travailler par email est d'être certain que l'utilisateur a donné une adresse mail fonctionnelle.
L'utilisation d'IP me paraît plutôt aléatoire.

Une solution qui me paraît viable mais présente un inconvénient
- le logiciel envoie le mail contenant le lien;
- quand l'utilisateur clique sur le lien il invoque un script php qui place un fichier sur le serveur;
- pendant ce temps le logiciel attend de trouver le fichier; quand il le trouve l'inscription est validée.

L'inconvénient est : quid si l'utilisateur ne clique pas sur le lien, par exemple parce qu'il ne reçoit pas le mail ?
Le logiciel ne peut pas attendre indéfiniment !
On peut toujours mettre une horloge qui décompte : il vous reste xx secondes pour cliquer sur le lien.

Il y a peut-être des solutions plus orthodoxes.
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020
437
Tous les logiciels avec validation ont une période de test gratuite, y'a forcément une horloge quelque part.

Alors entre afficher un message une fois au démarrage ou tout le temps c'est un choix à toi
Messages postés
823
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
20 septembre 2020
2
Je pense qu'on ne se comprend pas.
Actuellement
- la première fois qu'on utilise le logiciel, on doit communiquer une adresse mail;
- le logiciel envoie à cette adresse un mail contenant un code d'accès;
- l'utilisateur recopie le code d'accès reçu par mail dans une TextBox du logiciel;
- si ça correspond, le logiciel écrit une clé dans le registre de sorte qu'à la prochaine utilisation on ne devra plus demander un code d'accès.

Ce que je voudrais faire (différences en gras)
- la première fois qu'on utilise le logiciel, on doit communiquer une adresse mail;
- le logiciel envoie à cette adresse un mail contenant un lien;
- l'utilisateur clique sur ce lien;
- d'une manière ou d'une autre (ma question est "comment ?") le logiciel est averti de ce clic, il écrit une clé dans le registre de sorte qu'à la prochaine utilisation on ne devra plus demander un code d'accès.
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020
437
Et bien, oui tu peux afficher un décompte,
ou quand le logiciel a envoyé les infos au serveur, tu éteints le logiciel et quand le client redémarre, s'il n'a pas cliqué ça l'invite à cliquer ou à ressaisir son adresse mail et au bout de 30 secondes (par exemple) ça se referme,
ou je sais pas, il y a pleins de façons de faire
Messages postés
823
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
20 septembre 2020
2
On ne se comprend décidément pas.
Ma question est : comment le logiciel peut-il savoir que l'utilisateur a cliqué sur le lien dans le mail ?
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020
437
Je ne voies que 2 solutions, que je t'ai déjà proposées
  • option 1, il y a un dialogue entre ton serveur et ton logiciel (IP, etc...)
  • option 2, tu éteins le logiciel et au démarrage il vérifie un truc sur ton serveur (la présence d'un fichier comme tu l'as déjà écrit, une valeur....)


Messages postés
823
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
20 septembre 2020
2
option 1, il y a un dialogue entre ton serveur et ton logiciel
comment établir ce dialogue ?

option 2, tu éteins le logiciel et au démarrage
pourquoi "éteindre" et redémarrer le logiciel ? Il peut patienter !
Patienter qu'un fichier soit disponible OK mais je me demandais s'il n'y avait pas une solution plus conforme aux usages
sinon une valeur : où, comment ?
Messages postés
14784
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 septembre 2020
437
Oui patienter aussi tu as raison.

Pour la valeur, tu pourrais avoir un fichier avec toutes les licences actives et ton logiciel vérifie qu'il est dedans.


Pour le dialogue, le web c'est pas mon rayon.
Mais en "réseau de base", je dirais qu'un dialogue UDP ou TCP ferait l'affaire si tu es en intranet.
Si tu passes par internet, une option pourrait être que ton serveur abrite un petit site et ton logiciel l'affiche via un webbrowser