建立一个当地的smtp 服务器?
如果您要说 Postfix,那么这些所谓的最低限度、最愚蠢的设置步骤是什么?
我有点惊讶,在任何地方找到这个似乎都这么困难。我需要:
- 本地托管的 smtp 服务器,用于将邮件发送到互联网。
- 没有 tls 或 saslauth 或任何其他东西。
- 仅允许来自本地主机的邮件。
- 没有继电器。
似乎应该在某个地方安装一些软件包,设置一个帐户,然后您就拥有一个本地 smtp 服务器。
我不是系统管理员。人们说 postfix 非常简单,但也许我做错了,我看到的所有安装文档都很复杂,我实际上没有多余的时间去调试邮件服务器。我只想将邮件发送到互联网。真的那么难吗?
答案1
虽然它没有得到维护,但你可以尝试邮件传输协议。然而,它确实支持一些您不想要的功能,但设置起来非常容易。
来自 Ubuntu 的Synaptic Package Manager
描述esmtp
:
ESMTP 是用户可配置的仅中继邮件传输代理 (MTA),具有与 sendmail 兼容的语法。它基于支持 AUTH(包括 CRAM-MD5 和 NTLM SASL 机制)和 StartTLS SMTP 扩展的 libESMTP。
esmtp 网站列出了一些其他备择方案,其中sSMTP
看起来最简单。来自 Ubuntu 的Synaptic Package Manager
描述ssmtp
:
一种将邮件从系统发送到邮件中心的安全、有效且简单的方法。它不包含 suid 二进制文件或其他危险内容 - 没有邮件缓冲池可供查看,也没有后台运行的守护进程。邮件只是转发到配置的邮件主机。配置极其简单。
答案2
忽略所有安装文档,您不需要它们。在 Debian/Ubuntu 上,安装问题已得到处理。SMTPdebconf
服务器的设置为您提供了一组标准配置。这包括几个可以执行您想要的操作的选项。如果您需要一些文档,请考虑安装该postfix-doc
软件包。
根据我的经验,Debian/Ubuntu 的 Exim4 和 Postfix 设置基本相同。以下选项适用于 Exim4,但应该适用于 Postfix。您可以使用该dpkg-reconfigure
命令重新运行配置。
您选择的默认配置mail sent by smarthost; received via SMTP or fetchmail
应该非常接近您想要的配置。要阻止收到邮件,请将 设置listen address for incoming SMTP sessions
为127.0.0.1
。
或者,您可能要考虑选择mail sent by smarthost; no local mail
。这会将大多数邮件发送到另一个系统进行投递。有关无法将邮件发送到其他服务器的消息将在本地投递。
通常,负责递送邮件的智能主机是您的 ISP 的中继服务器。在 LAN、MAN 或 WAN 上,可能会有本地邮件服务器可供使用。
答案3
我有同样的需求,刚刚在 CentOS 上用这些简单的命令安装了 postfix(当然替换 fancyhostname、fancydomain 和[电子邮件保护]与适合你的情况相关):
# Before you beging setup your hostname properly
# YOU MUST HAVE A VALID HOST NAME
sed -i 's/HOSTNAME=.*/HOSTNAME=fancyname.fancydomain.com/' /etc/sysconfig/network
echo "127.0.0.1 fancyhostname.fancydomain.com fancyname" >> /etc/hosts
reboot
# check
hostname ; hostname -f ; uname -n; echo `hostname -s`.`hostname -d`
# you should get this output 4 lines like this one:
# fancyhostname.fancydomain.com
# anything else means you made a mistake above
# installation
#---------------
yum -y install postfix # install postfix
yum -y install mail # makes testing easy - see bellow
# configuration
#---------------
# B) postfix config.
# I only accept mail from localhost - no relaying whatsoever
echo "mynetworks = 127.0.0.0/8" >> /etc/postfix/main.cf
/etc/init.d/postfix reload
# C) where do you want mail for root delivered:
echo "root: [email protected]" >> /etc/aliases
newaliases
# test
#---------------
echo test | mail -s test root
sleep 1; tail /var/log/maillog
# now check your mail - you should soon receive the test mail
我确信 ubuntu 不会再难了。我很快就会尝试一下并在这里报告
答案4
安装邮件实用程序
sudo apt-get 安装 mailutils
发送这样的电子邮件
echo "This is the body of my message. Wow this is so simple" | mail -s "This is my subject line" [email protected]