Sendmail - Restriced Users

I would like to restrict some users from exchanging external email while allowing some users full access to Internet mail.
The restricted users would need to still have access to internal Email.

The mail server runs Solaris 2.7 with  Sendmail 8.9.3+Sun/8.9.1

Is it possible? if so, how?
Who is Participating?

Improve company productivity with a Business Account.Sign Up

ishConnect With a Mentor Commented:
It has been over 20 days since I answered this question for you.
Do the user's actually log into this server?  Or is it a mail gateway that redirects incoming internet mail to your internal network?

If it is a gateway, this isn't too hard.  Take all those that are ALLOWED, and use the /etc/aliases file to redirect their mail to the appropriate Internal mail server.

for the disallowed, have the aliases route incoming mail to /dev/null

For users NOT allowed, make accounts on the local machine, with no aliases, and set them up with /bin/tru as a shell.  Drop a .forward into their home directories.

When new mail arrives for the ALLOWED subset, the user's password entry is looked up. If the shell entry from that password entry is a valid one, delivery is allowed thru the .forward, and the user can receive mail at the server, if not it is denied..  A shell is valid if it is listed in the /etc/shells file. If that file does not exist,
sendmail looks up the shell in its internal list.  The internal list is pretty standard.
kinseyAuthor Commented:
The mail server is also an application server on wich all users have (and need) shell accounts.

The compicating factor is that all users whould have access to internal email while some users should be excluded from sending and receiving external email.

I thought maybe this could be setup with some form of virtual server for external mail ?
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

We have opened up a new Solaris Topic Area.  

To increase the visibility of questions, we moved questions we felt
appropriate to the new Solaris Topic Area where they will be easier for
Solaris experts to find and answer. You may view your question at 

If you have any questions about the new topic area you can contact
Community Support by posting a comment at the following URL or by
emailing us at 

Community Support @ Experts Exchange

OK, I have a bit clearer picture now...

Sendmail does allow for the establishment of "virtual servers" (this is accomplished within the, the newest version from 8.10.0 even has a web interface available to config it).

If you set up the Virtual server to be:


then you set the /etc/aliases file to deliver mail for the privledged few to the local server, and to bounce back or /dev/null the stuff not allowed.  Your folks would still be able to send mail OUT... unless you start getting REALLY fancy with your configs...

kinseyAuthor Commented:
Woudn't local mail still be aliased to /dev/null for those users?
Yes you'd need the alias to /dev/null for your "disallowed users" on both.

With aliases to the virtual mail server for all "allowed users".

It was recently poitned out to me on another expert answer, that the MX record in DNS can be used to direct the email to your Virtual Server, but that email servers using broken headers and such won't honor the MX to the second host.
Hi kinsey,

It looks like your question has been answered by ish really well. Can you come back and accept one of the comments as an A grade answer?

Customer Service
kinseyAuthor Commented:
Answer accepted
kinseyAuthor Commented:
I still don't understand how this would work.
If a user is aliased to /dev/null they can recieve NO mail,  the objective is to allow ALL users access to internal mail and have local logins on the server.
SOME users have access to internet mail.
If I alias a users login to /dev/null all of their mail is thrown away, but I want them to be able to send/recieve mail to/from local addresses.

OK, something wasn't clear here...

You set the NULL on the server that accepts and handles outside mail:


You set the address on the inside server for all users

Better?    I think some answers got crossed....
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.