PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Envoie d'eMail / SMTP
Envoie d'eMail / SMTP
Débuté par STEPHANE VAN LIERDE, 08 fév. 2016 08:47 - 7 réponses
Membre enregistré
24 messages
Popularité : +1 (1 vote)
Posté le 08 février 2016 - 08:47
Bonjour,
J'ai un programme déployé chez plusieurs clients (avec une BdD hébergée chez OVH / Serveur dédié) .
Ce programme est utilisable, soit sur le domaine des l'entreprises, soit hors du domaine.
Le serveur SMTP est donc différent selon les cas (Entreprise 1, Entreprise 2, Interne, Externe, ...)
Comment faire pour que le programme puisse envoyer des mails de façon automatisé (sans lanceappli donc) et sans demander à l'utilisateur de modifier lui-même l'adresse de son serveur SMTP.

D'avance merci

--
Stéphane VAN LIERDE
socapitalhumain.com
Membre enregistré
257 messages
Popularité : +35 (37 votes)
Posté le 08 février 2016 - 09:09
Hello,

Voila ce que j'utilise
MaSession est un EmailSessionSMTP
UnCourriel est un Email
MaSession..AdresseServeur = "smtp.gmail.com"
MaSession..Option = emailOptionSécuriséTLS
MaSession..Port = 587
MaSession..Nom = "xxx@gmail.com"
MaSession..MotDePasse = "jaime-les-frites"
EmailChangeTimeOut(10) // 10 secondes pour le time out
Connexion_Reussi est un booléen = EmailOuvreSession(MaSession)
SI Connexion_Reussi = Faux ALORS
Erreur("Impossible d'ouvrir la session SMTP."+RC+ErreurInfo()+RC+"Votre email ne pourra pas être envoyer."+RC+"Merci de prendre contact avec le service informatique.")
FIN
UnCourriel..Expediteur="xxx@gmail.com"
UnCourriel..Destinataire = Destinataire // Variable chaine
UnCourriel..Cci = Destinataire_Cacher // Variable chaine
UnCourriel..Sujet= Sujet // Variable chaine
UnCourriel..Message = Corps // Variable chaine
POUR TOUTE sPièces DE Pièces_Jointe // Charge toutes mes pièces jointes dans le mail
EmailChargeFichierAttaché(UnCourriel,sPièces)
FIN
SI EmailEnvoieMessage(MaSession,UnCourriel,emailOptionEncodeEntête) = Faux ALORS
Info("Erreur lors de l'envoi du mail :"+RC+Sujet+RC+ErreurInfo(errMessage)+RC+"Merci de prendre contact avec le servic informatique.")
FIN
EmailFermeSession(MaSession)
Membre enregistré
24 messages
Popularité : +1 (1 vote)
Posté le 08 février 2016 - 10:30
Merci Baptiste pour la réponse, mais c'est également le genre de code que j'utilise.
Le problème est justement d'envoyer un mail sans devoir passer en dur dans le code (ou en paramètre) le serveur SMTP pour que cela soit transparent pour l'utilisateur final et que cela fonctionne partout sans manipulation.
Plus globalement, si le programme est destiné au "à être utilisé à la maison", je souhaite évité à l'utilisateur (non informaticien) de devoir saisir une adresse SMTP relative à son FAI. Bref je cherche un truc du genre RechercheServeurSMTP()

--
Stéphane VAN LIERDE
socapitalhumain.com
Membre enregistré
257 messages
Popularité : +35 (37 votes)
Posté le 08 février 2016 - 11:16
Stéphane,

Aucune fonction ne fait cela.
Même les grands logiciel de gestion de mail ( Outlook,Thunderbird,etc... ) demande une configuration manuel des nom de serveur IMAP/SMTP et de leurs ports quand le nom de domaine n'est pas dans leurs base de donnée.

Cordialement,

--
Il vaut mieux investir sur les compétences plutôt que de subir le coût de l"incompétence.
Posté le 08 février 2016 - 14:16
Bonjour,
Je pense qu'il faut mettre les données SMTP dans un fichier SMTP.FIC sur une ur une clef USB (format carte de visite)
A l'envoi, le programme teste 1 à 1 les enreg du fichiers pour envoyer l'email..
CNX01 si la connection est OK il envoie.. Sinon il passe a CNX02, etc.
Le fichier peut-être identique pour tous les utilisateurs ou spécifique à chaque utilisateur

Bonne journée
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 08 février 2016 - 19:35
Bonjour,

Sauf erreur de ma part, on n'est pas obligé d'utiliser le serveur smtp de son fai. Vous pouvez très bien utiliser le serveur smtp installé chez votre hébergeur pour un site web par exemple, ou encore le smtp d'un autre fournisseur. Donc les mettre dans une base et les tester un à un me semble un peu compliqué.

Par contre, vous pouvez monter un serveur smtp et utiliser le votre par défaut dans votre application.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Posté le 10 février 2016 - 16:37
Bonjour,

Effectivement, sauf que certains fournisseurs bloquent les envois qui ne passent par par leur serveur SMTP.

De mémoire j'avais fait un test d'envoi correctement à partir de chez moi, et arrivé chez le client ca ne marchait plus..
en mettant le SMTP de son FAI tout est redenu correct.
Sur un site internet là, ca marche de n'importe où, mais uniquement si on utilise un SMTP accepté par l'hébergeur du site..

Cdlt
Membre enregistré
163 messages
Popularité : +3 (3 votes)
Posté le 11 février 2016 - 08:13
Bonjour, tu peut toujours te monter un serveur chez toi, avec un Webservice qui récupérera les infos et qui se chargera d'envoyer ton courriel.

--
FredB
--
Le développement c'est la vie (des processus) et la vie c'est le développement (de soi)
--