FreeBSD Handbook : Electronic Mail : FAQ : Advanced topics
Previous: Sendmail says ``mail loops back to myself''
Next: The Cutting Edge: FreeBSD-current and FreeBSD-stable

17.3.3. How can I do E-Mail with a dialup PPP host?

You want to connect a FreeBSD box on a lan, to the Internet. The FreeBSD box will be a mail gateway for the lan. The PPP connection is non-dedicated.

There are at least two way to do this.

The other is to use UUCP.

The key is to get a Internet site to provide secondary MX services for your domain. For example:

bigco.com.			MX	10	bigco.com.
				MX	20	smalliap.com.

Only one host should be specified as the final recipient ( add ``Cw bigco.com'' in /etc/sendmail.cf on bigco.com).

When the senders sendmail is trying to deliver the mail it will try to connect to you over the modem link. It will most likely time out because you are not online. Sendmail will automatically deliver it to the secondary MX site, ie your Internet provider. The secondary MX site will try every (sendmail_flags = "-bd -q15m" in /etc/rc.conf ) 15 minutes to connect to your host to deliver the mail to the primary MX site.

You might wait to use something like this as a login script.

#!/bin/sh
# Put me in /usr/local/bin/pppbigco
( sleep 60 ; /usr/sbin/sendmail -q ) &  
/usr/sbin/ppp -direct pppbigco
If you are going to create a separate login script for a user you could use sendmail -qRbigco.com instead in the script above. This will force all mail in your queue for bigco.com to be processed immediately.

A further refinement of the situation is as follows.

Message stolen from the freebsd-isp mailing list.

> we provide the secondary mx for a customer. The customer connects to 
> our services several times a day automatically to get the mails to 
> his primary mx (We do not call his site when a mail for his domains 
> arrived). Our sendmail sends the mailqueue every 30 minutes. At the 
> moment he has to stay 30 minutes online to be sure that all mail is 
> gone to the primary mx.
> 
> Is there a command that would initiate sendmail to send all the mails 
> now? The user has not root-privileges on our machine of course.

In the 'privacy flags' section of sendmail.cf, there is a definition
Opgoaway,restrictqrun

Remove restrictqrun to allow non-root users to start the queue processing.
You might also like to rearrange the MXs.  We are the 1st MX for our 
customers like this, and we have defined:

# If we are the best MX for a host, try directly instead of generating
# local config error.
OwTrue

That way a remote site will deliver straight to you, without trying 
the customer connection.  You then send to your customer.  Only works for 
"hosts", so you need to get your customer to name their mail machine 
"customer.com" as well as "hostname.customer.com" in the DNS.  Just put 
an A record in the DNS for "customer.com".


FreeBSD Handbook : Electronic Mail : FAQ : Advanced topics
Previous: Sendmail says ``mail loops back to myself''
Next: The Cutting Edge: FreeBSD-current and FreeBSD-stable