我想将 root 收到的电子邮件转发到 Ubuntu 节点上的外部电子邮件。我见过这种情况邮政,但并未对后续步骤做太多解释。网上也有一些其他帖子,但通常不完整或不清楚。
有没有人有完整的流程可以分享?我的节点上应该安装邮件服务器吗?如果是,安装哪一个?节点上的配置步骤是什么?我严格使用命令行(节点是服务器)。
答案1
如果root
正在接收电子邮件,那么您可能已经安装了服务器。
$ sudo dpkg-reconfigure postfix
如果出现错误,
$ sudo apt-get install postfix
(重新)配置为直接交付或使用智能主机。现在将“ ”(当然,带有正确的地址)添加到并运行。(我认为 Ubuntu软件包在 期间会自动执行此操作)。root: [email protected]
/etc/aliases
newaliases
postfix
dpkg-reconfigure
答案2
是的,您需要在节点上安装邮件服务器。我首选 Postfix、exim 和 sendmail(按此顺序)。
请注意,有些邮件服务器对于接收邮件的来源有些挑剔。如果是本地邮件服务器,限制通常由网络完成,因此您可能不会遇到问题。例如,如果是 gmail,您必须确保您发送的域名(postfix 中的 /etc/mailname)与您发送的 IP 匹配。如果您需要获取与您的 IP 匹配的域名(如果您还没有域名),请查看 DynDNS 或其他类似服务。
在网上查看转发到其他邮件提供商的说明。
然后,您可以执行以下操作之一(以 root 身份)将发送至 root@localhost 的邮件发送到您的外部电子邮件地址:
echo "[email protected]" > /root/.forward
或者
echo "root: [email protected]" >> /etc/aliases && newaliases
答案3
您还必须弄清楚您是否可以退出,或者您的 ISP 是否阻止了端口 25。我编写了以下脚本来设置 Ubuntu 以使用用户名和密码进行智能主机电子邮件转发。因此,它将把根电子邮件转发到 ISP 的 SMTP 服务器,而不是直接转发。
apt-get install mailutils
P=/etc/postfix/password
echo "smtp.mailserver.com username:password" >> $P
chown root:root $P
chmod 0600 $P
postmap hash:$P
echo "
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/password
smtp_sasl_security_options =
" >> /etc/postfix/main.cf
echo "
root: [email protected]" >> /etc/aliases
newaliases
/etc/init.d/postfix reload
echo "$HOSTNAME Email Ready" | mail -s 'Email test' root
tail /var/log/mail.log
答案4
另一种选择是使用ssmtp
(一个小型的仅发送邮件“服务器”)。官方提供了完整的操作方法Ubuntu 文档。