LDD Today


Ask Professor INI

Preferences and other matters

A number of questions have come in about Professor INI's first topic this month, the Preferences variable. After discussing this variable, Professor INI answers a handful of other questions as well.

User preference INI variables
We've received a great deal of mail concerning the undocumented NOTES.INI variable Preferences. Some readers are simply curious about what all those numbers mean, for example:

Q: At the moment, my NOTES.INI contains the line: Preferences=-1736162191
Can you explain what this line contains and what the numbers represent? For example, am I giving you some information here that I shouldn't?

Others, especially Domino administrators, ask whether they can use this setting to enforce a standard set of user preferences at rollout, for example:

Q. We have a set of user preferences that are different from defaults. We check those preferences under each product release by configuring a "clean install" of the client and capturing the Preferences setting in NOTES.INI. Then we push this to users by modifying their NOTES.INI files. Unfortunately, this sometimes resets preferences that we'd rather not change. Is it possible to allow users to overwrite some of our Preferences settings, but not others?

First, let's address the Preferences setting and what it means. As you might expect, this variable contains information associated with the User Preferences dialog box in the Notes client, which you access by choosing File - Preferences - User Preferences. Note that other NOTES.INI variables also contain User Preferences information. These include, among others, DefaultBrowser (which corresponds to the option "Make Notes the default Web browser on my system"), EnablePlugins ("Enable plugins in Notes browser"), and EnableJavaApplets ("Enable Java applets").

The Preferences setting contains information related to user selections such as "Scan for unread," "Empty trash folder," and so on. Notes creates the number that appears in Preferences by performing an AND operation on the values of the individual user preference settings. If you convert the Preferences number into binary, you can determine the bit positions and (at least in theory) decode which user preferences are selected.

There is some Web information available for decoding the Preferences setting and determining the user's preference settings. For example, Wolcott Systems Group provides a free, downloadable utility called Preferences Manager that allows administrators and developers to set or clear individual bits in the Preferences line. According to the description provided, "Preferences Manager is most useful when you need to support multiple configurations on a single machine, and the Location profiles in the personal Name and Address Book do not support the parameter you wish to modify. An example for this is the 'Prompt for Location' parameter. If you needed to have a user prompted for location only in certain circumstances, you can use PM in a login script or batch file to set this parameter prior to running Lotus Notes." Of course, to use Preferences Manager you first need to know which Preferences bit corresponds to which Notes user preferences.

However, Preferences is not documented in the Domino and Notes product documentation, nor do we recommend users change their Notes user preferences by editing this variable. The variable serves as a place for the system to store preferences information, not as an interface for users to change it. You should always change preferences through the User Preferences dialog box itself, which will then overwrite the Preferences INI variable setting.

Also, none of the information in the Preferences variable represents a security risk. For example, hackers would not be able to steal your ID, determine your password, or break your encryption based on data gleaned from your Preferences setting. Still, it's never a bad idea to remain as security-conscious as possible, even when the information in question appears seemingly innocuous.

As for whether Domino administrators can use the Preferences setting to enforce a standard set of user preferences during deployment, again this is not a recommended or documented use of this variable. Instead, administrators should use Profile documents to do this.

Nevertheless, a number of administrators apparently do use Preferences for this purpose. Bear in mind, however, this raises two significant issues. First, if you give users a standard Preferences setting to paste into their NOTES.INI files, any previous user preference selections associated with this variable will be overwritten. Second, even after users apply the Preferences variable, they can overwrite it by using the User Preferences dialog box. There is no way to prevent users from doing this.

All in all, if you're an R5 administrator, it's best to leave the Preferences setting alone and not rely on it for standardization. Profile documents handle that task more easily and completely.

Additional questions

Q: I would like to know about the NOTES.INI variables needed to prevent mail spamming.
R4.6 includes several NOTES.INI variables that let you control in-bound Internet mail and help prevent spamming.

SMTPMTA_Reject_Relays=1 prevents the MTA (Message Transfer Agent) from doing relays. The MTA normally performs relays if an in-bound message is sent to its IP address but is not addressed to one of the MTA's Internet domain suffixes as configured in the Global Domain document. This will not prevent messages that are delivered to Notes and logically get relayed back out.

SMTP_OCH_Reject_SMTP_Originated_Messages=1 prevents messages that Notes might automatically send out to the Internet using the MTA by rejecting all out-bound messages that contain an SMTP Originator field. For example, a message might automatically get sent out if a Person document has a forwarding address that is an Internet address. Note that this variable has the following side effect: An in-bound message that has just been edited and sent back out to the Internet using the MTA will get rejected since the message contains the SMTP Originator field. (Forwards and replies will not have the SMTP Originator field set and therefore, will not be affected.)

SMTPMTA_Denied_Domains=domains prevents spamming (external-to-external mail routing) from the specified domains. For example, you can enter SMTPMTA_Denied_Domains=C:\DENY.TXT where DENY.TXT is a text file containing the list of domains.
SMTPMTA_Allow_Known_Domains=1 allows mail relays to known domains only. Mail for a recipient is rejected if the connecting host resides in an unknown domain, and the recipient also resides in an unknown domain. Mail for a recipient is only accepted if either the connecting host or the recipient resides in a known domain. (Note that SMTP_Allow_Known_Domains should not be used with SMTPMTA_Reject_Relays.)

SMTPMTA_HELO_Domain_Verify=1 enables Helo domain verification. Helo verification "authenticates" the domain named in the HELO/EHLO command. It does this by verifying that the IP address used by a remote host is actually associated with the purported domain name that the host has supplied.

SMTPMTA_Relay_Forwards=1 checks if a recipient has a forwarding address. If the forwarding address is an SMTP 821 address, it relays the message back out without conversion. SMTPMTA_Relay_Forwards allows the MTA to deal with forward addresses before they are processed by SMTP_OCH_Reject_SMTP_Originated_Messages.

For more information on these variables, consult the Release Notes for Domino 4.6.5.

All of these variables are obsolete in R5. Instead, with R5 you can enforce anti-spamming features from within the UI itself. For example, you can open the Configuration Settings document for the server and go to the Router SMTP - Restrictions and Controls - SMTP Inbound Controls tab. This tab lets you allow or deny connections from specified SMTP Internet host names or IP addresses. For more information on these and other anti-spam features, consult the Iris Today article, Notes Spam Mail Filtering: Domino messaging restrictions and controls, and the Domino R5 Administration Help.

Q: I am a veteran CLP in R4 and R5 and was just wondering if the entry Domain=xxxx is still active, that is, if it still has any effect on the running system. Or is this a residue from the old R4 system?
The variable Domain is indeed still active and supported in R5. On a server, Domain specifies the server's domain. On a workstation, this variable specifies the domain of the user's mail server. Its UI equivalent on the server is the Domain Name field on the Basics tab of the Server document. On the client, the UI equivalent is the Domain field on the Mail tab in the user's Person document.

Q. What does the line ExtMgr_Addins do and what is Extension Manager?
Extension Manager (EM) is a component of Notes Object Services (NOS). EM manages application callback functions. Some NSF and high-level database services are designed to call application-provided callback functions at the start and end of their operations. These callbacks may affect the operation of the participating routines—for example, by doing additional work or by stopping operations for various reasons. An application registers its extensions with EM.

You build an EM application as an executable program library—for example, as a dynamic link library (DLL) for Windows or shared object libraries for Macintosh and UNIX systems. After building the application on Windows, you identify the executable program library by editing NOTES.INI to include the ExtMgr_Addins setting. This lets you define the list of add-in files for the EM. Domino reads this variable on initialization and then appends a platform-identifying suffix character to each name. Domino then attempts to load the library. For example, ExtMgr_Addins=logdll,amgrdll instructs Domino to look for and load the files _LOGDLL.DLL and _AMGRDLL.DLL. (Note that on the Macintosh, you modify the Notes preferences file, which is in the Preferences folder within the System folder.)

For more information on Extension Manager, see Inside Notes, available from the Documentation Library.


Do you have a NOTES.INI questions? Send it in to Professor INI. We'll answer as many questions as we can in future "Ask Professor INI" columns. Keep in mind, however, that we may not be able to answer every question, nor can we quickly respond to requests that require immediate attention. If you need an immediate response to a question, we recommend you post it in the Iris Cafe Notes/Domino Gold Release Forum where someone from the general Notes community might be able to help, or contact Lotus Customer Support.