通常情况下,要发送电子邮件,你需要一个smtp服务器或连接到一个服务器。让我们使用Postfix来绕过这一需要。基本上,Postfix是一个免费的、开源的邮件传输代理(MTA),用于路由和发送电子信件。让我们开始吧。
apt-get update
# install postfix
apt-get install postfix
当你继续安装时,会出现Postfix的提示。这里有一些需要注意的信息。
- 邮件配置的一般类型? :选择
Internet Site- 这符合我们的基础设施需求。 - 系统邮件名称:输入你的FQDN,即:
example.com- 这是用于构建有效的电子邮件地址的基础域,当只给出账户部分的地址。如果我们服务器的主机名是mail.example.com,我们希望系统邮件名是example.com,这样,给定一个user,postfix将使用这个地址user@example.com - Root and postmaster mail recipient: 这是一个Linux账户,它将被转发到
root@和postmaster@的邮件。使用你的主账户来做这个。 - 其他接受邮件的目的地。这定义了这个Postfix实例将接受的邮件目的地。如果你需要添加任何其他该服务器将负责接收的域,请在这里添加,否则,默认情况下应该可以正常工作。
- 强制对邮件队列进行同步更新?: 没有
- 本地网络。应该是
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128这是你的邮件服务器被配置为转发邮件的网络列表。默认值应该适用于大多数情况。如果你选择修改它,请确保对网络范围的限制非常严格。 - 信箱大小限制:这可以用来限制邮件的大小。把它设置为 "0",可以禁用任何大小限制。
- 使用的互联网协议。选择是否要限制Postfix支持的IP版本。为了我们的目的,我们将选择 "所有"。
检查它是否已经安装:telnet localhost 25 。如果没有,用sudo postfix start 启动 postfix 。
现在,让我们来配置postfix。根据你的条目,你可能不需要修改这些。检查一下这些设置。
myhostname: example.com - 这是你的机器的主机名,但不要放完整的主机名。如果你的机器主机名是mail.mydomain.com,你将只使用mydomain。把你的FQDN放在这里,比如 "example.com"
**virtual_alias_map。**如果你想配置邮件转发到其他域,或者希望投递到与系统账户没有1对1映射的地址,我们可以删除alias_maps参数,用virtual_alias_maps来代替它。然后我们需要将哈希值的位置改为/etc/postfix/virtual。virtual_alias_maps = hash:/etc/postfix/virtual
mydestination:-mydestination = $myhostname, localhost.$mydomain, $mydomain 这个参数指定了这台机器将在本地交付哪些目的地。你可以使用默认值。这应该是根据你输入的FQDN来配置的。对于将邮件转发到你的服务器以外的其他地址,这不是必需的,只需要virtual_alias_domains 和virtual_alias_maps 。如果你想在这个服务器中接收邮件,如果这一行导致错误,你可能需要注释这一行。
mynetworks。-mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 这个条目将定义邮件可以被转发的授权目的地。这定义了能够使用这个邮件服务器的计算机。它应该只设置为本地(127.0.0.0/8和其他代表)。修改这一点,允许其他主机使用,是一个巨大的漏洞,可能导致极端的垃圾邮件案例。这应该是自动设置的,但它应该是这样的。mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
**mydomain:**如果你的邮件服务器向你的整个域名提供邮件,你将需要添加另一个条目,类似于mydomain = mydomain.com
一旦你安顿好了,用以下方法重启Postfixsystemctl restart postfix
安装mail 和其他实用程序。apt-get install mailutils
然后你就完成了!现在,试试发送邮件吧echo "This is the body of the email" | mail -s "This is the subject line" -r from@example.org to@recipient.com
请注意,你可能需要改变你的计算机主机名,以匹配你输入的主机名。请查看这个链接,了解如何做到这一点。
现在,让我们试试将电子邮件账户映射到linux系统账户。在postfix配置中追加virtual_alias_maps 的设置。
postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
编辑/etc/postfix/virtual ,像这样将电子邮件映射到系统用户名。
contact@example.com joe
admin@example.com jane
应用映射的方法postmap /etc/postfix/virtual
重新启动postfix。systemctl restart postfix
注意:你可以在发送邮件时通过添加-a 参数来改变邮件标题。比如说。
echo "body of email" | mail -s "Subject Line" -a "From: Admin Name <noreply@example.org>" mail@recipient.com