PureBasic

Forums PureBasic
Nous sommes le Mar 23/Juil/2019 14:55

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 21 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: Comment envoyer des emails en CC ou CCI
MessagePosté: Mar 24/Juil/2018 15:45 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
Bonjour à tous,

en ce moment, je fais un logiciel pour l'association des diabétique de la Manche, et ils m'ont demandé un programme qui enregistre les nouveaux membres et qui puisse envoyer des courriels et des courriers postaux.

J'ai donc fait un logiciel en 3 parties pour l'instant : 1 principal qui appelle les autres parties qui sont l'enregistrement des nouveaux membres, l'enregistrement des groupes de membres, et le formulaire de courriel où l'expéditeur est connu et fixé à l'avance puisqu'il s'agit de l'association, là où ça se complique c'est que l'utilisateur doit pouvoir choisir un ou plusieurs destinataires, ou il peut choisir aussi les options #PB_Mail_To, #PB_Mail_Cc et/ou #PB_Mail_Bcc, c'est parfaitement faisable puisque ces options sont natives, mais je ne sais pas comment aborder ce problème.

est-ce que quelqu'un pourrait m'orienter dans la bonne direction, déjà je pense qu'il faut que je fasse une liste des membres dans laquelle on pourra choisir plusieurs membres, si nécessaire, ou peut-être 2 une pour les copies carbone et une pour les copies carbone cachées.

De plus les emails envoyés devront avoir une signature qui se trouve dans le sous-répertoire Images.

Dans tous les cas, je vous remercie beaucoup, car je sais que votre me sera précieuse.

Il y aura aussi une quatrième parties qui devra permettre d'envoyer des courriers, mais je n'en suis pas encore là.

https://www.dropbox.com/sh/5umawca380npbrf/AABlPM187e1-NwwzO-NwczCha?dl=0

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Dernière édition par Micoute le Mer 25/Juil/2018 6:09, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Mar 24/Juil/2018 17:07 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Micoute, je pense qu'une base SQL / SQLite serait une solution à ce que tu veux faire.
Si j'ai bien compris ta demande, je ferait une table Groupe (Pour avoir la liste des groupe existant lors de la création des membres) et une table membe.
Avec les fonctions de recherche SQL tu pouras facilement sortire une liste des membres appartenant à un groupe.

Pour donner la possibilité de choisire les options Mail to, mailCC et Bcc, je ferais un truc dans le genre :
Code:
#Mailto = 1
#MailCC = 2
#MailBcc = 4
Declare result()
Declare close()
If OpenWindow(0,0,0,200,300,"bla",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  CheckBoxGadget(0,10,10,150,30,"Mail TO")
  CheckBoxGadget(1,10,50,150,30,"Mail CC")
  CheckBoxGadget(2,10,90,150,30,"Mail Bcc")
  ButtonGadget(3,10,130,80,20,"Result")
  BindEvent(#PB_Event_CloseWindow,@close())
  BindGadgetEvent(3,@result())
EndIf
Repeat : WaitWindowEvent() : ForEver
Procedure result()
  Protected result
  If GetGadgetState(0) : result + 1 : EndIf
  If GetGadgetState(1) : result + 2 : EndIf
  If GetGadgetState(2) : result + 4 : EndIf
  If result & #Mailto : Debug "Mail to coché": EndIf
  If result & #MailCC : Debug "Mail CC coché" : EndIf
  If result & #MailBcc : Debug "Mail Bcc coché" : EndIf
EndProcedure
Procedure close()
  End
EndProcedure


Je ne sais pas si ça répond à ta question, je ne suis pas sur d'avoir bien compris ta demande.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Mar 24/Juil/2018 18:05 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
Merci boby pour ton aide providentielle,

je me suis peut-être mal expliqué, car mon programme est devenu très complexe pour moi, c'est pourquoi j'ai fait des programmes interdépendants, qui ont chacun une fonction bien précise, en fait pour le problème que je cherche à résoudre pour le moment, c'est de pouvoir choisir les destinataires ayant un certain critère ; "Type 1", "Type 2", "Type donateur", "Type élan solidaire", etc... afin de les cibler plus facilement et l'idée que tu as eut me met déjà sur la bonne voie.

Le type de base de données que j'utilise est le format Json que je trouve très souple d'emploi pour les listes structurées.

Merci encore.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Mar 24/Juil/2018 19:00 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Le Json est un format de fichier très pratique par sa simplicité, malgré tout, si je t'encourage à choisire le SQL c'est pour la simplicité de ses fonctions de recherche
ex : "SELECT * FROM membre WHERE 'groupe' = 'Type donateur'"
while nextelement(DB)
... getdatabasestring(DB,colone)
wend

Et hop tu as la liste de tes membres du groupe "Type donateur". Beaucoup plus simple et plus performant que faire un système de recherche "maison".

J'éspère t'avoir aidé. Bon courage pour ton logiciel.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Mer 25/Juil/2018 6:18 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
Oui tu as raison, mais j'ai l'habitude de (travailler) avec ce genre de fichier et je me suis habitué à sa syntaxe.

Un exemple juste pour montrer le principe :
Code:
;Copier le contenu du fichier json dans la liste provisoire avec les critères choisis

;Exemple avec vrai ou faux

ForEach Elements()
  If Left(Elements()\Reponse, 4) = "Vrai" Or Left(Elements()\Reponse, 4) = "Faux"
      AddElement(provis())
      provis()\Id = Elements()\Id
      provis()\Theme = Elements()\Theme
      provis()\Sujet = Elements()\Sujet
      provis()\Question = Elements()\Question
      provis()\Reponse = Elements()\Reponse
  EndIf
Next

Code:
;Autre exemple avec choix multiples

ForEach Elements()
  If Left(Elements()\Reponse, 9) = "Réponse a" Or
      Left(Elements()\Reponse, 9) = "Réponse b" Or
      Left(Elements()\Reponse, 9) = "Réponse c"
      AddElement(provis())
      provis()\Id = Elements()\Id
      provis()\Theme = Elements()\Theme
      provis()\Sujet = Elements()\Sujet
      provis()\Question = Elements()\Question
      provis()\Reponse = Elements()\Reponse
      Position1 = FindString(Elements()\Reponse, "a)")
      Position2 = FindString(Elements()\Reponse, "b)")
      Position3 = FindString(Elements()\Reponse, "c)")
      If Position1 = 9 Or Position2 = 9 Or Position3 = 9
          provis()\Reponse1 = "Réponse a"
          provis()\Reponse2 = "Réponse b"
          provis()\Reponse3 = "Réponse c"
      EndIf 
  EndIf
Next

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Mer 25/Juil/2018 11:22 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1634
Localisation: Belgique
Bonjour Micoute,

Le soucis avec json est que si ta base de données devient plus conséquente, les recherche vont prendre énormément de temps car si je me fie à ton exemple tu parcours toute la base (imagine avec plusieurs milliers de records).

Donc je suis de l'avis de boby une base Sqllite serait nettement plus appropriée

_________________
Windows 10 64 bits PB: 5.70 ; 5.71 beta 2


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Mer 25/Juil/2018 11:35 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
D'accord, mais je ne pense pas que le département de la Manche compte des milliers de diabétiques membres de cette association, et en plus il y a une base de données par sites de dépistage.

L'autre problème, c'est que je n'utilise plus les bases de données de type SQL depuis des lustres.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Mer 25/Juil/2018 12:10 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Pour un projet comme le tiens, je pense que tu n'auras vraiment pas besoin de beaucoup de commande SQL, rien que les bases :

INSERT INTO table VALUES ('valeur 1', 'valeur 2', ...)
UPDATE table SET colonne_1 = 'valeur 1', colonne_2 = 'valeur 2', colonne_3 = 'valeur 3' [WHERE condition]
SELECT colonne (ou * pour toutes les colonnes) FROM table [WHERE condition]

Et si tu as besoin d'autres fonctions http://sql.sh/cours

A toi de voir.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Mer 25/Juil/2018 14:41 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
Je ne dis pas que c'est moins bien comme système, mais je ne suis pas habitué à penser avec celui-ci, j'ai plutôt l'habitude de penser comme ça:
Code:
ForEach Membres()
    ForEach Groupes()
      Grp = StringField(Groupes()\Nom_Groupe, 1,"")
      If Grp = GetGadgetText(#Cmb_Groupe)
        AddElement(Membres_de_Groupe())
        Membres_de_Groupe()\Nom = Membres()\Nom
        Membres_de_Groupe()\Prenom = Membres()\Prenom
        Membres_de_Groupe()\Email = Membres()\Email
        Membres_de_Groupe()\Groupe = Membres()\Groupe
      EndIf 
    Next 
  Next

Et comme ma liste structurée Membres_de_Groupe() ne contient que les membres ne correspondant à un seul critère, je travaille donc avec cette liste qui contient tous les emails dont j'ai besoin.

En fait je n'ai besoin que des emails à ce niveau-là. Merci encore pour l'aide que vous m'apportez, qui m'est précieuse.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Mer 25/Juil/2018 15:07 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Ta méthode fonctionne Micoute et tu ne devrais pas avoir de différence significative (niveau traitement des tâches) avant plusieurs centaines de membre, si tu te sens plus à l'aise en passant par le Json, ça fera le travail.

Au risque de te sembler insistant, pour tout ce qui est soft à base de BDD, le SQL c'est vraiment magique, je te conseille donc de t'y essayer dans des petits exercices quand ton programme seras fini.

Si tu as besoin d'aide sur d'autres sujets pour ton soft en cours (ou autres), n'hésite pas !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Jeu 26/Juil/2018 7:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
Je ferais bien de m'y atteler maintenant, car l'avantage de Json c'est que les bdd sont facilement compréhensible et modifiable aisément.

Le problème que je rencontre en ce moment, c'est comment inscrire la liste des membres qui vont recevoir le mail en copie carbone, je pense que j'aurais le même problème avec la copie carbone invisible.

Merci d'avance à tous ceux qui vont m'aider et j'en ai bien besoin.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Jeu 26/Juil/2018 8:12 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Citation:
Le problème que je rencontre en ce moment, c'est comment inscrire la liste des membres qui vont recevoir le mail en copie carbone


Inscrire où / dans quoi, au moment de l'envoie de mail ou au moment de la création des groupes / membres ?

Par rapport à quoi tu te base pour savoir qui devras recevoir un mail ? Toutes les personnes d'un même groupe ? Les personnes d'un même endroit ?

La comme ça c'est un peut chaud de t'aider, on a pas la moindre idée de comment (logistiquement parlant) on sais à qui envoyer un mail / dans quel conditions.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Jeu 26/Juil/2018 13:16 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
Normalement quand on reçoit une copie carbone, on a :
Citation:
De : Micoute

A : boby ; falsam ; microdevweb ; etc...

C'est de ça que je veux parler.

Dans le cas d'une copie carbone invisible, je crois que ça doit être :
Citation:
De : Micoute

A : boby

et je pense que chacun à la même, mais en ignorant que d'autres ont reçut le même message.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Jeu 26/Juil/2018 13:35 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Code:
If CreateMail(0, "Micoute@test.com", "sujet")
  SetMailBody(0, "bla bla bla")
  AddMailRecipient(0, "association des diabétique de la Manche@mail.com", #PB_Mail_To)
  ForEach Membres()
    If Membres()\Groupe = Groupe_des_personnes_a_qui_envoyer_le_mail
      AddMailRecipient(0,membres()\Email,#PB_Mail_Cc
    EndIf
  Next
EndIf


Euh... Genre ça ? ou c'est pas ça que tu demandes ?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment envoyer des emails en CC ou CCI
MessagePosté: Jeu 26/Juil/2018 15:33 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
Ouah ! Figure-toi que ce n'est pas idiot du tout, rien que d'analyser l'action, j'imagine ce que ça va faire, je teste ça de suite.


Merci beaucoup de m'avoir enlevé la poutre que j'avais dans l'œil, tellement mon programme est devenu compliqué, alors que dans le procédural, il faut analyser action par action, dans un ordre bien déterminé.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 21 messages ]  Aller à la page 1, 2  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye