Agent :qui limitela taille des messages en receptions sur qu

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Re: alternative - code mis à jour

Messagepar Oguruma59 » 15 Jan 2004 à 14:04

pour ceux qui souhaitent....Synopsis de base de documents Lotus Notes - créé à 14:02:34 le 15/01/2004Informations d'agentNom : $CheckMailSizeDernière modification : 15/01/2004 13:52:52Commentaire : [Sans]Agent partagé : OuiType : LotusScriptEtat : Activé(e)Déclencher : Avant l'arrivée de courrierS'applique à : Chaque document courrier entrantCode LotusScript :Option PublicUse "ClassMail"%REMCet agent a pour but de contrôler la taille des messages. Si celui-ci est activé dans son document profil, le messagesera rejeté s'il a atteint le seuil fixé dans le profil.%END REMDim session As NotesSessionDim dbMail As NotesDatabaseDim dbParam As NotesDataBaseDim view As NotesViewDim viewDbID As notesviewDim docProfile As NotesDocumentDim docContext As NotesDocumentDim docMail As NotesDocumentConst PARAMDB="STECHKMAIL.NSF"Const VUEDBID="VDBID"Sub Initialize '// lancement de l'agent Dim ok As Integer On Error Goto errHandler Call initCommon If docProfile Is Nothing Then Print "aucun document profil pour cette base" Exit Sub End If '// A-t-on activer l'agent ? If docProfile.steActif(0)="Non" Then Exit Sub '// On procéde donc à son analyse If Not analyzeMail() Then Print "Incident pendant l'analyse des messages reçus..." Else Print "Traitement des messages reçus correctement effectué" End If Exit SuberrHandler: Print "Erreur n ° ";Err;" : ";Error$;" - ";Erl;" (Initialize)" Resume finfin:End SubSub initCommon '// Initialisation des objets communs à l'agent On Error Goto errHandler Set session=New NotesSession Set dbMail=session.CurrentDataBase '// ici on récupère le document reçu afin de le traiter à l'issue Set docContext=session.DocumentContext '// on récupère les paramètres enregistrés dans le profil '// Set docProfile=dbMail.GetProfileDocument( "(ProfilCheck)" ) '// on accède aux paramètres via la base Check Mail Profiles Set dbParam=New NotesDataBase(dbMail.server,PARAMDB) '// On récupère le doc à partir de l'ID réplique de la base actuelle Set viewDbID=dbParam.getView(VUEDBID) Set docProfile=viewDbID.GetDocumentBykey(dbMail.replicaid) Exit SuberrHandler: Print "Erreur n ° ";Err;" : ";Error$;" - ";Erl;" (initCommon)" Resume finfin:End SubFunction analyzeMail() As Integer '// Fonction chargée d'analyser la taille du message reçu Dim seuil As Long On Error Goto errHandler seuil=docProfile.steSeuil(0) Print "Seuil à ne pas dépasser : ";Seuil Print "Taille du message : ";docContext.Size Print "Message envoyé par : ";docContext.From(0) '// Si le seuil est atteint If docContext.Size>=seuil Then '// On supprime le document If Not ejectMail() Then Print "Incident pendant la tentative de suppression du message" analyzeMail=False Else Print "Message de ";docContext.From(0);" supprimé avec succés" '// On informe son émetteur If Not alertSender() Then Print "Impossible d'informer l'expéditeur ";docContext.From(0) Else Print docContext.From(0);" a bien été informé que son message a été rejeté" End If End If End If '// Tout s'est bien passé analyzeMail=True Exit FunctionerrHandler: Print "Erreur n ° ";Err;" : ";Error$;" - ";Erl;" (analizeMail)" analyzeMail=False Resume finfin:End FunctionFunction ejectMail() As Integer '// Fonction chargée de supprimer le message On Error Goto errHandler '// on supprime le document Print "Suppression du document en cours..." Call docContext.Remove(True) Print "Suppression du document effectuée correctement" ejectMail=True Exit FunctionerrHandler: Print "Erreur n ° ";Err;" : ";Error$;" - ";Erl;" (ejectMail)" ejectMail=False Resume finfin:End FunctionFunction alertSender() As Integer '// Fonction chargée d'avertir l'expéditeur du message On Error Goto errHandler Dim msg As Mail Dim texte(0) As String Set msg=New Mail() msg.Subject="REFUS : "+docContext.Subject(0) texte(0)=docProfile.steMsg(0) Call msg.SetRecipients(docContext.From(0),Null,Null) Call msg.SetBody(texte) '// on vérrouille si l'utilisateur souhaite répondre... msg.Principal=dbMail.Server msg.ReplyTo="No reply" Call msg.Send(False) Delete msg '// On alerte aussi le propriétaire du la base mail If Not alertMe() Then Print "Impossible de déposer un message dans boîte à lettres du propriétaire" alertSender=False Else alertSender=True End If Exit FunctionerrHandler: Print "Erreur n ° ";Err;" : ";Error$;" - ";Erl;" (alertSender)" alertSender=False Resume finfin:End FunctionFunction alertMe() As Integer '// Fonction chargée d'avertir le propriétaire de la bàl On Error Goto errHandler Dim rtitem As NotesRichTextItem Dim docMailMe As NotesDocument '// On prépare le message pour le déposer dans le dossier courrier arrivé Set docMailMe=dbMail.createdocument docMailMe.Subject="REFUS de : "+docContext.Subject(0) '// corps du message Set rtitem = docMailMe.CreateRichTextItem("body") Call rtitem.appendText (docContext.From(0)+" vous a envoyé un message trop volumineux, nous l'avons rejeté. ") Call rtitem.appendText (Chr$(13)+Chr$(10)) Call rtitem.appendText ("Veuillez prendre de nouveau contact avec cet utilisateur.") Call rtitem.appendText (Chr$(13)+Chr$(10)) Call rtitem.appendText (Chr$(13)+Chr$(10)) Call rtitem.appendText ("Cordialement. ") Call rtitem.appendText (Chr$(13)+Chr$(10)) Call rtitem.appendText ("Les Administrateurs") '// ici les composants systèmes du message docMailMe.from="Administrateurs" docMailMe.SendTo="A votre intention" docMailMe.replyTo="Administrateurs" docMailMe.DeliveredDate=Now docMailMe.PostedDate=Now docMailMe.RouteServers=dbMail.Server docMailMe.RouteTimes=Now docMailMe.SMTPOriginator=dbMail.Server '// sauvegarde dans les dossier courrier arrivé Call docMailMe.save(True,False) Call docMailMe.PutInFolder("($Inbox)") alertMe=True Exit FunctionerrHandler: Print "Erreur n ° ";Err;" : ";Error$;" - ";Erl;" (alertMe)" alertMe=False Resume finfin:End Function
Oguruma59
 

Re: alternative - synop de la base param

Messagepar Oguruma59 » 15 Jan 2004 à 14:07

pour ceux qui souhaitent créer la base à partir du synop....Synopsis de base de documents Lotus Notes - créé à 14:04:28 le 15/01/2004Informations de masqueNom : ProfilDernière modification : 15/01/2004 11:45:14Commentaire : [Sans]Type : Document Inclure dans le menu Création : OuiInclure dans Recherche par masque : NonMasque par défaut : NonMettre automatiquement à jour les champs : OuiEnvoi de documents à l'enregistrement : NonEnregistrement du masque dans documents : NonRécupérer contenus de champ existants : NonEnregistrer mises à jour comme réponses : NonConvertir versions antérieures en réponses : NonActiver les objets pendant la création : NonActiver les objets pendant l'édition : NonActiver les objets pendant la lecture : NonClés de chiffrement de document : [Sans]Liste d'accès aux docs créés avec ce masque : Tous les utilisateursListe d'accès à ce masque pour création : Tous les utilisateursSous-composants :Champ : steNomUtilType de données : NomsMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonEn script : NonZone sensibleType : BoutonLégende : Rechercher base courrierEn script : Oui, voir ci-dessousChamp : steDbMailType de données : TexteMessage d'aide : [Sans]Type de champ : CalculéSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonFormule : steDbMailEn script : NonChamp : steIDMailType de données : TexteMessage d'aide : [Sans]Type de champ : CalculéSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonFormule : steIDMailEn script : NonChamp : steActifType de données : Mots-clésMessage d'aide : [Sans]Type de champ : ModifiableInterface utilisateur mot-clé : Boutons radioMots-clés disponibles : Oui NonSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonFormule de valeur par défaut : "Oui"En script : NonChamp : steSeuilType de données : NombreFormat de nombre : Fixe (0 décimales)Pourcentage (valeur * 100)% : NonParenthèses pour nombres négatifs : NonPonctué au millier : NonMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonFormule de valeur par défaut : 5000000En script : NonChamp : steMsgType de données : TexteMessage d'aide : [Sans]Type de champ : ModifiableSignature des sections et messages : NonChiffrement : Désactivé(e)Accès Editeur nécessaire pour mise à jour : NonEn script : NonCode JavaScript et HTML :[Aucun]Code LotusScript :(Bouton) Rechercher base courrierSub Click(Source As Button) Dim session As New NotesSession Dim nn As notesname Dim w As NotesUIWorkspace Dim db As NotesDataBase Dim dbNAB As NotesDataBase Dim uidoc As NotesUIDocument Dim doc As NotesDocument Dim viewNAB As NotesView Dim docNAB As NotesDocument Dim dbMail As NotesDataBase On Error Goto errHandler Set w=New NotesUIWorkspace Set session=New NotesSession Set db=session.CurrentDataBase Set uidoc=w.CurrentDocument Set doc=uidoc.Document Set dbNAB=New NotesDataBase(db.server,"names.nsf") Set dbMail=New NotesDataBase("","") Set viewNAB=dbNAB.GetView("($VIMPeople)") Set nn=New notesname(doc.steNomUtil(0)) Set docNAB=viewNAB.GetDocumentByKey(nn.common) If docNAB Is Nothing Then Messagebox "Cet utilisateur n'est pas dans le carnet d'adresses",16,"Profil" Exit Sub End If Call dbMail.Open(docNAB.MailServer(0),docNAB.MailFile(0)) doc.steDbMail=docNAB.MailFile(0)+".nsf" doc.steIDMail=dbMail.ReplicaID Msgbox "Recherche terminée" Exit SuberrHandler: Msgbox "erreur " & Err & " " & Error$ & " ligne " & Erl,16,"erreur" Resume finfin:End Sub Informations de vueNom : ID répliquePseudonyme : VDBIDDernière modification : 15/01/2004 11:49:51Commentaire : [Sans]Vue par défaut : NonRéponses non hiérarchisées : Désactivé(e)Etat à l'ouverture de la vue : DétailléeMarqueurs de documents non lus : AucunFréquence de mise à jour : AutomatiqueSuppression de l'index : JamaisListe d'accès à la vue : Tous les utilisateursFormules relatives à l'heure : NonFormule de sélection : SELECT @AllSous-composants :Numéro de la colonne : 1Titre de la colonne : ID ReplicaFormule de la colonne : steIDMailLargeur de colonne : 16 caractèresSéparateur de liste : Masqué : NonRéponses seulement : NonIcône : NonFormat de nombre : LibrePourcentage (valeur * 100)% : NonParenthèses pour nombres négatifs : NonPonctué au millier : NonFormat horaire : 15/01/2004 14:04:28Tri : Ordre croissantJustification : GaucheTotal : AucunMasquer valeurs détaillées : NonNuméro de la colonne : 2Titre de la colonne : UtilisateurFormule de la colonne : @Name([CN]; steNomUtil);Largeur de colonne : 17 caractèresSéparateur de liste : Masqué : NonRéponses seulement : NonIcône : NonFormat de nombre : LibrePourcentage (valeur * 100)% : NonParenthèses pour nombres négatifs : NonPonctué au millier : NonFormat horaire : 15/01/2004 14:04:28Tri : Ordre croissantJustification : GaucheTotal : AucunMasquer valeurs détaillées : NonCode JavaScript et HTML :[Aucun]Code LotusScript :[Aucun] Nom : UtilisateursDernière modification : 15/01/2004 11:48:16Commentaire : [Sans]Vue par défaut : OuiRéponses non hiérarchisées : Désactivé(e)Etat à l'ouverture de la vue : DétailléeMarqueurs de documents non lus : AucunFréquence de mise à jour : AutomatiqueSuppression de l'index : JamaisListe d'accès à la vue : Tous les utilisateursFormules relatives à l'heure : NonFormule de sélection : SELECT @AllSous-composants :Numéro de la colonne : 1Titre de la colonne : UtilisateurFormule de la colonne : @Name([CN]; steNomUtil);Largeur de colonne : 17 caractèresSéparateur de liste : Masqué : NonRéponses seulement : NonIcône : NonFormat de nombre : LibrePourcentage (valeur * 100)% : NonParenthèses pour nombres négatifs : NonPonctué au millier : NonFormat horaire : 15/01/2004 14:04:28Tri : Ordre croissantJustification : GaucheTotal : AucunMasquer valeurs détaillées : NonCode JavaScript et HTML :[Aucun]Code LotusScript :[Aucun]
Oguruma59
 

Re: alternative - code mis à jour

Messagepar BigJim » 15 Jan 2004 à 14:27

Oguruma59,Tu as mis le code à jour pour la version alternative, mais pas pour la version "normale" avec l'agent dans un nouveau modèle c'est ça ? (les points 1 à 6) ???
BigJim
 

Re: alternative - code mis à jour

Messagepar Oguruma59 » 15 Jan 2004 à 16:33

oui en en fait, dans le modèle de la base mail il ne faut pas créer de masque profil, il faut juste placer l'agent avec la lib classmaille masque profil est à créer dans une base à part, j'ai posté le synopl'option 2 n'est pas à faire dans le nouveau modèlealors ça correspond à ce que tu veux ,?
Oguruma59
 

Re: alternative - code mis à jour

Messagepar BigJim » 16 Jan 2004 à 10:23

Salut Oguruma59,En fait, cela me gène un peu pour l'exploitation de l'agent d'avoir une seconde base.Est-ce qu'il est possible de modifier l'agent pour que je n'ai que celui-çi à mettre (sans profil, juste 1 agent) dans mon nouveau modèle de base courrier ?Même si cela implique que je serai obligé de modifier le code directement dans l'agent si je souhaite modifier la taille des messages maxis (par exemple).Encore merciBigJim
BigJim
 

Re: alternative - code mis à jour

Messagepar oguruma » 16 Jan 2004 à 12:21

ahh oui ss pb... mais tous serait codé en dur ! et les modifications seraient moins souples et les règles serait les mêmes pour tous... le cas d'une seconde base ou profil te permettait de faire les choses au cas par cas...tu peux assi créer par défaut un document "spécial" dans le carnet d'adresses perso ou te servir du document site et utiliser la zone commentaire ou qq chose du genre... mais la meilleure repose sur une base dédiée sur le serveur pour des raisons de secrutie@+
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Re: alternative - code mis à jour

Messagepar BigJim » 16 Jan 2004 à 14:13

Oui, voilà, je prefère cette solution du codage en dur dans mon modèle.Ce modèle est déjà spécifiques pour 50 utilisateurs (tous du même type).Si j'ai besoin de l'étendre à d'autres, j'utiliserai un autre modèle.Peux-tu reposter ici l'intégralité de l'agent modifié dans ce cas précis, ou me l'envoyer par mail à nox8000@yahoo.fr ?Encore merci et bravo pour ton "talent"BigJim
BigJim
 

Re: alternative - code mis à jour

Messagepar oguruma » 16 Jan 2004 à 14:37

OK je te fais un packagela première version est mise en commentaire
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Re: alternative - code mis à jour

Messagepar oguruma » 16 Jan 2004 à 14:48

autre piste... si tu ne veux pas de base externe et ça te laisse plus de liberté et un seul agent et pas de modif de code...tu dépose un fichier txt au nom de la base courrier de l'utilisateurdans un sous répertoire dédié sous data soir data\chkmaildata\chkmail\jdupon.txtil contient :Oui2000000ligne 1ligne 2ligne 3ligne 4ligne 5ligne ..ligne 10le nom du fichier txt serait celui de la base mailavec les propriétés de classe Database tu peux avoir le nom de la base et il ext facile de remplace .NSF par .TXTtu lis ce fichier...les lignes textes tu les places dans un tableauet voilà le tour est joué...tu veux le code ? pour ceci... facile !ainsi :1/ modèle unique2/ une gestion souple3/ pas de base notes secondaire
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Précédent

Retour vers Développement

cron