通过安装并配置Postfix和s-nail邮件客户端,可轻松实现电子邮件收发功能。Postfix是一个电子邮件服务器,安装和配置都很容易。s-nail是用来发送、管理电子邮件的客户端。本文中的一切指令均需在root权限下进行,我们将完整演示如何在Ubuntu 18.10环境中安装并配置Postfix和s-nail。首先我们通过指令安装Postfix服务。
DEBIAN_PRIORITY=low apt install postfix
这里我们使用DEBIAN_PRIORITY=low选项来进行安装,以便在安装时能进行简要的配置,在安装过程中需要的配置的选项如下:
• General type of mail configuration?: 选择 Internet Site
• System mail name: example. com 其中example. com为你的当前服务器域名
• Root and postmaster mail recipient: 当前Ubuntu用户名称,如root账号则为 root
• Other destinations to accept mail for: 其他需要接收的邮件地址,如果有其他域名则填入,否则Enter
• Force synchronous updates on mail queue?: 是否强制更新邮件队列,此处选择No
• Local networks: 本地networks的列表,此处一般使用默认值
• Mailbox size limit: 邮箱大小限制,此处为不限制,用0
• Local address extension character: 默认值+
• Internet protocols to use: 服务器支持的地址协议,选择IPV4或IPV6,两者都有则选择ALL
本列的完整配置选项如下:
General type of mail configuration?: Internet Site
System mail name: example.com (not mail.example.com)
Root and postmaster mail recipient: root
Other destinations to accept mail for: $myhostname, example.com, mail.example.com,
localhost.example.com, localhost
Force synchronous updates on mail queue?: No
Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Mailbox size limit: 0
Local address extension character: +
Internet protocols to use: all
如果我们需要对以上参数进行再调整,使用以下命令进行重新配置:
dpkg-reconfigure postfix
下面我们需要进一步对Postfix的其他参数进行配置。对home_mailbox设置,指定当前用户的邮件目录:
postconf -e 'home_mailbox= Maildir/'
该指令将在当前用户目录下创建名为Maildir的目录来存储用户邮件文件。可以用cd ~进入目录后用ls命令查看到Maildir目录。
接着需要创建文件/etc/postfix/virtual来将电子邮件账号同Ubuntu账号对应起来,设置virtual_alias_maps参数值为hash:/etc/postfix/virtual
postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
接着编辑/etc/postfix/virtual文件的内容,格式如下:
[email protected] root [email protected] root
利用postmap指令使该项配置生效。
postmap /etc/postfix/virtual
通过上面的配置,我们完成了对Postfix选项的设置,重启Postfix服务,使配置生效。
systemctl restart postfix
对系统防火墙进行配置。
$ sudo ufw allow Postfix
在安装s-nail前,需要确保Postfix的MAIL选项值完全正确,这个选项将会在安装s-nail时自动获取并使用它,为了确保所有用户环境都能取得该选项值,我们把该选项值保存到/etc/bash.bashrc和/etc/profile.d/mail.sh文件中:
echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
用以下命令读取/etc/profile.d/mail.sh中的相关参数到当前session中备用:
source /etc/profile.d/mail.sh
现在可以安装s-nail电子邮件客户端了。
sudo apt install s-nail
安装完成后,需要编辑配置文件/etc/s-nail.rc来设置几个参数。
nano /etc/s-nail.rc
将以下内容添加到文件/etc/s-nail.rc末尾:
set emptystart set folder=Maildir set record=+sent
以上配置允许s-nail在inbox为空的情况下打开邮件收件箱,设置文件夹为Maildir,并在其中新建sent文件夹用来保存已发送邮件。
以上所有配置完成后,Postfix + snail已经完成了安装和配置,下面我们来尝试发送邮件进行测试。
echo 'init' | s-nail -s 'init' -Snorecord root
这条指令将向本地root用户发送一封名标题为init内容为init的电子邮件。我们可能会收到 Can’t canonicalize “/home/sammy/Maildir” 这样的提示,这是正常现象,它只会有首次收发信时出现。这时我们需要检查一下邮件目录是否正常。
ls -R ~/Maildir
如果输出Maildir目录结构,并在/home/sammy/Maildir/new:下有电子邮件文件,这就说明Postfix和s-nail配置的完全正确。我们可以利用s-nail来实现对电子邮件的阅读和管理。
s-nail
运行s-nail后,会显示已经收到的邮件列表:
▸N 1 root 2019-01-01 16:42 14/426 init N 2 root 2019-01-02 16:42 14/429 welcome
此时我们将在s-nail的命令提示符? 后输入N后的邮件编号来阅读邮件,用d来删除邮件,用h来显示邮件列表,用q退出s-nail。