Restrict attachment in Lotus Notes

Posted on 2010-11-07
Last Modified: 2013-12-18
I need to restrict the ability to attach files to a group of Lotus Notes users.  I would prefer a  notes.ini solution if possible.  Maybe a rule? Validation script?  Pls help.  
Question by:royrubio
LVL 13

Expert Comment

ID: 34082378
The only solution that I have seen was based on computed subforms, containing a variant of the same richtext lite field: one with, one without attachments enabled.
That should work for you if you need it for a single custom application. It may not be a good idea if you also need it for mail, document libraries, team room etc. as well.

Accepted Solution

RonaldZaal earned 500 total points
ID: 34082600
Maybe you can use this < I use a function in the send action or query save or somthing:
Call checkFileExtensions(doc,lang) , this is to check what the user has attached.
You can update the code to check the user / group and or the sort of attachments he/she may send out.

Sub checkFileExtensions(doc As NotesDocument, lang As String)

	Dim i As Integer

	Dim ext As String

	Dim extString As String


	Dim profile As NotesDocument

	Set profile = doc.ParentDatabase.GetProfileDocument("nApplicationProfile")


	Dim AllowedExtensionsList List As String

' HERE you could use a Notes.INI setting

	Forall e In profile.AllowedExtensions

		AllowedExtensionsList(e) = "1"

		If extString = "" Then

			extString = e


			extString = extString + ", " + e

		End If

	End Forall


	' Fichier à exclure de l'impression	

	Dim filesToExclude List As String

	Forall file In doc.filesToExclude

		filesToExclude(file) = "1"

	End Forall


	Dim fileList List As String


	i = 0


	Forall RTItem In doc.Items

		If RTItem.Type = RICHTEXT Then

			If Isarray(RTItem.EmbeddedObjects) Then

				Forall Object In RTItem.EmbeddedObjects

					If  Object.Type = EMBED_ATTACHMENT Then

						If Not Iselement (filesToExclude(Object.Source)) Then


							' Test si l'extension fait partie des extensions autorisées

							ext = Lcase(Strrightback(Object.Source,"."))

							If Not Iselement (AllowedExtensionsList(ext)) Then

								i = i + 1

								fileList(Cstr(i)) = Object.Source

							End If

						End If

					End If

				End Forall

			End If

		End If

	End Forall


	' constitue le texte du message

	Dim msgString As String

	Dim msgString_En As String

	msgString = "Le fichier attaché : " + Chr(13)  + Chr(13)

	msgString_En = "The file attached : " + Chr(13)  + Chr(13)

	Forall f In fileList

		msgString = msgString + " - " + f  + Chr(13)

		msgString_En = msgString_En + " - " + f  + Chr(13)

	End Forall

	msgString = msgString + Chr(13) + "n'a pas une extension supportée pour l'impression du dossier CIM"  + Chr(13) + Chr(13)

	msgString = msgString + "Seules les extensions : " + extString + " sont supportées" + Chr(13)

	msgString = msgString + "Vous pouvez remplacer le fichier par un format supporté, par exemple :" + Chr(13)

	msgString = msgString + " - En l'incluant dans un fichier Word" + Chr(13)

	msgString = msgString + " - En le transformant en fichier pdf" + Chr(13) + Chr(13)

	msgString = msgString + "Pour gérer l'exclusion du fichier de l'impression, utiliser le bouton [Outils\Impression dossier CIM ... ] " + Chr(13)


	msgString_En = msgString_En + Chr(13) + "is not a supported extension to be printed in the CIM file"  + Chr(13) + Chr(13)

	msgString_En = msgString_En + "Only the file extensions : " + extString + " are supported" + Chr(13)

	msgString_En = msgString_En + "You can change the file by a supported file extension, for example :" + Chr(13)

	msgString_En = msgString_En + " - To include it in a Word document" + Chr(13)

	msgString_En = msgString_En + " - By transforming it into a PDF file" + Chr(13) + Chr(13)

	msgString_En = msgString_En + "To exclude the file from printing, use the button [Tools\Print CIM file ... ] " + Chr(13)


	If lang = "En" Then msgString = msgString_En


	If i > 0 Then

		Msgbox  msgString , 48 , "Attention" 

	End If

End Sub

Open in new window

LVL 46

Expert Comment

by:Sjef Bosman
ID: 34082612
You might try with TriggerHappy ( Happy) to intercept a mail, but I don't know what the possibilities are to modify or even block the mail.

You could also try to develop "the real thing", i.e. an Extension Manager DLL that attaches itself to the database(s) on your server. It can intercept and alter all mails... but it's not an easy project (read: several months maybe).

Author Comment

ID: 34104428
Any more ideas please?

Author Closing Comment

ID: 34158068
Not exactly the solution I wanted to know.

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

  In today’s Arena we can’t imagine our lives without Internet as we are highly used to of it. If we consider our life style just for only 2 min we found that face to face communication is swapped by e-communication.  Every Where from Works place to…
Problem "Can you help me recover my changes?  I double-clicked the attachment, made changes, and then hit Save before closing it.  But when I try to re-open it, my changes are missing!"    Solution This solution opens the Outlook Secure Temp Fold…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now