[Access] Base de Do + Envoi d'emails programme

zubral Messages postés 13 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 22 juin 2004 - 22 juin 2004 à 09:40
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012 - 22 juin 2004 à 17:53
Bonjour,

J'ai un projet pour un boite a realiser.
Il s'agit de creer une base de donnees de tous les projets en cours, avec par exemple numero du projet, date d'echeance, taches a effectuer, personnes sur le projet...
De plus, la demande est que pour chaque projet, et pour chaque tache de chacun, un email soit envoye aux personnes qui ont a realiser cette tache.
Prenons un exemple :
Dans un projet, il y a une tache : enregistrer le copyright. Cette tache doit etre effectuee par M. Duss le 15 juillet. Il serait souhaitable que le jour J, M. Duss recoive un email sous Outlook 2000 lui rappelant la tache qu'il a a effectuer.
Comment faire pour automatiser cet envoi d'email a partir d'une base de donnees ? Sachant que cette base de donnees est sur le serveur ?
Je ne vous demande pas le code, mais plutot la methode pour implementer ce projet. Genre s'il faut placer la base de donnees sur le serveur, et apres controler celui-ci avec un programmeur de taches, enfin bref je ne sais pas moi.

Merci d'avance pour tout ce que vous pourriez m'apporter, et bonne fin de journee.

Zubral

PS : Je poste mon message sur un forum vb, car je compte le realiser en vb, via excel, access (pour la base de donnees).

10 réponses

cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
22 juin 2004 à 10:10
En fait tu as plusieurs solutions à choix:
1°) Mettre ton application directement sur le serveur ainsi que ta BD et dans ton appli. chaque jour tu fais une requête sur la date du jour dans ta base et tu fais une boucle sur le recordset obtenus pour envoyé un email aux personnes respectives.
2°) Tu met ton appli sur un poste, mais là tu dois vérifier qu'il reste allumer en permanence sinon le reste est pareil à la solution 1

Pascal Laurençon
Mieux vaut un petit clic que deux grandes claques..
Mieux vaut un naze bin qu'un naze tout court..
0
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
22 juin 2004 à 10:27
D'accord avec toi pluplu; je voudrais rajouté que pour l'automatisation de l'envoie d'email, soit tu utilse ton propre serveur smtp (si c une entreprise c souvent le cas) ou alors les propriété d'outlook (hyperlink : mailto:test@test.com).
Amicalement TMCUH
0
zubral Messages postés 13 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 22 juin 2004
22 juin 2004 à 12:50
Merci bien pour les reponses.
Je ne compte pas mettre l'appli sur un poste (j'en ai discute avec mon tuteur de stage), mais plutot sur le serveur, donc je retiendrai la solution 1 de pluplu.
Maintenant, pour rentrer dans le un peu plus "code", comment je peux m'arranger pour faire un requete chaque jour ?
Dois-je faire boucler mon code en permanence et des que la date concorde dans la base de donnees il envoie le mail ?
Quels sont les risques de faire boucler en continu une appli qui va se renseigner sur une base de donnees ?
Existe-t-il alors une autre methode ? (Car bon j'avoue que c'est la seule que je vois pour l'instant)

De plus, j'ai demande au responsable IT de la boite, et apparement c'est un serveur Exchange qui est mis en place.
Comment est-ce possible d'envoyer des mails depuis le serveur a des personnes ? (J'espere que vous comprenez ma question). Car comme tu me dis tmcuh, je peux utiliser les proprietes d'Outlook, mais je dois bien avouer que cela reste encore un peu vague pour moi (je sais faire envoyer des mails par vba, mais depuis un serveur, comment cela se passe-t-il generalement ?).

Dans tous les cas, merci beaucoup pour vos reponses.

Zubral
0
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
22 juin 2004 à 13:07
Ben tout d'abord le type de serveur n'as pas vraiment à voir...le principal c'est d'avoir une compatibilité vers le type de base de donnée. Tu as le choix soit tu utilise un controle ocx de type adodc (car il est multiplatforme) ou alors tu utilise les objet (set db = opendatabase(mabase)), moi je te conseil le premier cas, car de 1 tu peux le rendre dynamique (si un utilisateur change quelque chose) et de plus il connais pas mal de type de base de donnée ce que le deuxième ne fait pas... Tu dois ensuite faire une requete sql de type : "SELECT adresseemail FROM table ORDER BY adresseemail". (tu fais cà avec recordset)...
maintenant point de vue du jour de la requete ben cà c'est pas dur tu mets un timer regler sur 1 minute ( 60000 ) vu que c'est le plus gros en chiffre que tu peux obtenir. Bon maintenant tu teste comme tu l'as souligné à chaque fois si on est l'heure ou la date (que tu aura récupéré dans un variable via requete sql)...maintenant le problème c'est si ton programme plante, alors en principe si il est bien conçu il ne plante pas, maintenant si tu veux gérer ceci, tu utilise le principe du système d'exploitation, tu envoie une requete à un second programme, et si il ne recoie plus de requete (via un port).... et ben il kill le prog et le relance... (il faut donc prévoir une auto-gestion du plantage)... cà c vraiment pour la sécurité
Pour ce qui est de l'envoie d'email... si tu c'est le faire en vba je vois pas pq tu serais pas en VB, tant que tu as l'adresse du serveur sortant (smtp)...tu n'aura pas de grande difficulté à y arrivé, si pas, y'a tjrs des sources ici présentes pour t'aider
Amicalement TMCUH
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zubral Messages postés 13 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 22 juin 2004
22 juin 2004 à 13:16
Quand je dis que je sais envoyer un mail, je peux faire un truc du genre :

Sub UseOutlook()
  Dim MonOutlook As Object
  Dim MonMessage As Object
  Set MonOutlook = CreateObject("Outlook.Application")
  Set MonMessage = MonOutlook.createitem(0)
  MonMessage.To = "truc@machin.com"
  MonMessage.Cc = "bidule@machin.com"
  MonMessage.Bcc = "chose@machin.com"
  MonMessage.Subject = "Quel beau soleil"
  MonMessage.body = "N'est ce pas un beau temps pour aller à la piscine ?"
  MonMessage.Attachments.Add "C:\Mes Documents\Zoulie Image.gif"
  MonMessage.send
  Set MonOutlook = Nothing
End Sub

Mais cela correspond a utiliser Outlook sur le poste sur lequel il est installe. Donc, pas exactement a mon probleme.
Merci bien pour le probleme de stabilite du programme, car c'est vrai qu'il ne sera surement pas relance s'il y a plantage du serveur.

Merci pour ces renseignements (je vais aller faire un petit timer de 60000 8-)
0
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
22 juin 2004 à 13:23
pq tu dis à utilisé sur le post sur lequel il est? si j'ai bien suivis, il doit y avoir un rappel des choses à effectuer, peut importe qui l'envoie! que l'adresse soit admin@machin.com ou autre cà change rien...le plus important c'est le "Monmessage.to = ...". et cà c pas dur à récupéré en sql!
Amicalement TMCUH
0
zubral Messages postés 13 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 22 juin 2004
22 juin 2004 à 13:29
Ouais ca se recupere facilement, ca il n'y a pas de probleme.
Mais je me posais juste la question si cela allait marcher, si Outlook n'etait pas installe sur le serveur, en utilisant ce code.
0
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
22 juin 2004 à 13:37
La réponse sera clair c'est NON. Tu peux pas utiliser un prog qui est pas installé c'est logique. maintenant tu va sur : http://www.vbfrance.com/code.aspx?ID=18429 tu as un prog pas mal fait tu prend dedans ce dont tu as besoin, tu change le client smtp car il utilise celui de wanadoo donc tu mets celui de l'entreprise.
Amicalement TMCUH
0
zubral Messages postés 13 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 22 juin 2004
22 juin 2004 à 13:53
Merci ;)
J'arrete avec les questions pour aujourd'hui, je vais tester tout ca.
Bonne journee a toi.
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
22 juin 2004 à 17:53
Une autre alternative, au lieu de faire une boucle dans ton programme qui vas tester tous les X temps que la date à changé c'est d'utiliser un scheduler comme WIN AT sur Win NT et 2000 et qui lance ton application une fois par jour à une heure déterminée et ensuite tu peux faire en sorte que lorsque ton application à terminé son traitement, elle se Kill d'elle même de cette façon il n'y a pas de problème de plantage etc..

Pascal Laurençon
Mieux vaut un petit clic que deux grandes claques..
Mieux vaut un naze bin qu'un naze tout court..
0