Gather ye rosebuds while ye may

Ubuntu Email Server


配置sendmail+dovecot 的服务器并用 email 客户端进行邮件收发

  1. sendmail 只为192.168.x.0/24 提供转发
  2. 允许用户teacher 有多个邮件地址([email protected] [email protected]
  3. 设置 sendmail 可以转发来自126.com 的邮件 下面的语句使用时出错的话,请大胆尝试sudotouch等操作

安装 sendmail,mailutils 和 dovecot

sendmail

1
sudo apt-get install sendmail

dovecot

1
sudo apt-get install dovecot-pop3d

查看状态、开启服务,关闭服务,重启服务:

1
sudo service sendmail/dovecot status/start/stop/restart

mailutils

1
sudo apt-get install mailutils

测试发送

1
echo “邮件正文” | mail -s 邮件主题 对方 email

sendmail 控制邮件中转

备份配置文件,这是个好习惯:

1
cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.old

编辑配置文件(/etc/mail/sendmail.mc)

AKA激活access.db

1
2
3
4
找到这个:
FEATURE(`access_db', , `skip')dnl
改成下面这个
FEATURE(`access_db')dnl

编译.mc文件成为.cf文件:

注意我这里的m4没有权限往这个文件夹里面写文件,所以我先生成到了/home里面然后再mv进去

1
2
sudo m4 /etc/mail/sendmail.mc > /home/sendmail.cf
sudo mv /home/sendmail.cf /etc/mail/sendmail.cf

编辑access文件:

1
2
192.168.1.0/24 RELAY
126.com RELAY

编译accessaccess.db文件

不知道为什么使用 sudo 也没有用,我使用了sudo su

1
2
3
sudo su
makemap hash access.db < access
exit

然后使用 sudo 编辑器查看 access.db 文件就可以看到编译成功了。

重启服务

1
sudo service sendmail restart

单个用户多个邮件地址

编辑配置文件(/etc/mail/sendmail.mc):

1
2
添加下面这一行
define('ALIAS_FILE''/etc/aliases')dnl

编辑/etc/aliases:

1
admin:":include:/etc/manage.user"

新建文件/etc/manage.user:

1
root,teacher,teacher@linuxstudy.com,qz@linuxstudy.com

编译.mc文件成为.cf文件:

注意我这里的m4没有权限往这个文件夹里面写文件,这次使用sudo su

1
2
3
sudo su
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
exit

使别名生效:

1
2
3
sudo su
/usr/bin/newaliases
exit

重启服务

1
sudo service sendmail restart

以上