如果你有一个静态的IP地址, 你不需要调整任何默认值 . 设置好你的在网络上分配给你的主机名,其它的 sendmail都会帮你做完.
如果分配给你的是动态的IP并且使用 PPP拨号连接到Internet, 你可能已经在你的 ISP邮件主机上有一个邮箱. 假定你ISP的域名是 example.net, 你的用户名称是 user, 亦假设你自己的主机名称是 bsd.home, 而你的ISP告诉你可以使用 relay.example.net当做邮箱回复处.
为了从你的邮箱接收邮件, 你需要安装代理程序以便从信箱取回邮件 . fetchmail是一个不错的选择,因为它支持许多不同的协议. 这个程序可以从package或通过ports collection((mail/fetchmail)得到。如果你使用user PPP,通常你的ISP会提供POP3服务, 你可以在连线到Internet成功后自动取回你的信件,只要在 /etc/ppp/ppp.linkup里设置如下这项:
MYADDR: !bg su user -c fetchmail
如果你正使用sendmail (如下所示 ) 传送邮件到非本地帐户, 这会强迫 sendmail在连接网络后马上处理邮件进程队列,它在/etc/ppp/ppp.linkup文件执行fetchmail命令.
!bg su user -c "sendmail -q"
假设你有一个 user帐户,在bsd.home机器上. 在bsd.home机器上的user目录里建立一个 .fetchmailrc文件:
poll example.net protocol pop3 fetchall pass MySecret
这个文件除了user外不应该被任何人读取,因为它包含了 MySecret这个密码.
为了在发信时有正确的抬头 from:, 你必须告诉 sendmail 使用 user@example.net 而非 user@bsd.home. 你可能会希望告诉 sendmail 从 relay.example.net发送所有邮件, 加快邮件的传送 .
以下的.mc文件应该可以满足你的需求:
VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`example.net')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(`SMART_HOST', `relay.example.net') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl
如何转换这个.mc文件到 sendmail.cf 文件的细节,请参考前面的章节. 另外,在更新 sendmail.cf文件后,不要忘记重启sendmail.