我发现了两种从 Linux/bash 发送邮件的方法:
- 通过 sSMTP 等服务,这意味着使用外部 SMTP 服务器,例如 gmail
- 通过 Postfix 服务器,配置 Linux 服务器作为它自己的 SMTP 服务器(我认为)
我几乎找到了关于如何配置每个服务的文档。据我所知,使用 sSMTP 服务时存在安全问题(我无法承受,因为我想在 IT 生产环境中配置它),而且您必须能够访问 Internet。因此,我们只剩下 Postfix 服务器了。
我知道如何配置 Postfix,除了域名部分。首次配置时,它会要求您输入域名(如example.com
)。我不知道在哪里可以找到它。你不需要购买域名吗?或者我应该询问我的 IT 部门是否有域名,以便我可以使用它?或者我可以输入类似domain.com
。我想在 Linux 服务器上配置它。另一方面,我在另一个网络上有另一台 Linux 服务器,该服务器已配置 Postfix 服务器,因此您可以使用以下配置文件发送邮件:
cat /etc/postfix/main.cf | grep -v "^#" | grep -v "^$"
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = server2.backup
inet_interfaces = localhost
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
mynetworks = 168*.0/28, 127.0.0.0/8,localhost
relayhost = [10.*]:25
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
为了安全目的,我用 * 修改了 IP 地址。Postfix 上配置了什么域?我刚刚看到这里localhost.$mydomain
,但这并没有告诉我任何事。非常感谢您的耐心。
注 1:我发现服务器 2 使用中继服务器来发送邮件,但我仍然不知道它的域名是什么
答案1
我不能完全确定我是否正确理解了您想要实现的目标以及问题到底是什么,但现在我假设您想使用 Postfix 将server2.backup
邮件发送到运行的邮件服务器putty-server
。
您不需要进行大量配置即可实现这一点:
# myorigin = <sending domain>
myhostname = server2.backup
relayhost = <putty-server's IP>
myorigin
在您的“发件人”电子邮件地址中,将您想要的任何域设置为默认域,例如my-personal-domain.com
或whitehouse.gov
。如果您想从 发送,则可以省略它server2.backup
。
putty-server
如果您要向其发送邮件的域没有匹配的 MX 记录,则需要将中继主机设置为 IP 。如果您想将邮件发送到多个服务器,请选中Postfix 的传输图环境。
就是这样。确保putty-server
接受来自server2.backup
ip(范围)的邮件,例如将其添加到mynetworks
在putty-server
。
如果这对您没有帮助,请使用以下方式更新您的问题
lsb_release -a
或 的输出cat /etc/os-release
,- 的输出
postconf mail_version
, - 的输出
comm -23 <(postconf -n) <(postconf -d)
, server2.backup
来自(`/var/log/mail.log)的相关日志行和- 相关日志行来自
putty-server
。