从我的服务器发送电子邮件

从我的服务器发送电子邮件

所以,我想从我的服务器发送电子邮件。

我安装了mailx

apt-get install mailx

但是像这样的命令

mail -s "Hello world" [email protected]

实际上是在给出错误/var/spool/邮件/其中写道:

Mailing to remote domains not supported.

为什么会发生这种情况?

答案1

您在本地使用什么 MTA?mail仅使您能够形成邮件消息,但您仍然需要 MTA 来进行实际传递?默认情况下,大多数发行版都附带 sendmail。您可能需要安装另一个 MTA 或配置当前 MTA 以支持外部传递。

答案2

# fgrep remote /var/log/exim4/mainlog.1 | sed -E 's#([ <])[^ <]+@[^ >]+([ >])#\1a@b\2#g' | head -1
2019-01-08 00:47:00 1ggebk-00055M-St ** a@b <a@b> R=nonlocal: Mailing to remote domains not supported
#

看起来 Debian 可能带有一个exim4设置为无法在互联网连接的机器上正常工作的装置,其中传出的 smtp 端口没有被阻止。

正如各种评论所指出的那样,为了使其正常工作,必须运行dpkg-reconfigure exim4-config,然后在向导中选择第一个internet选项。请注意,在向导的后续对话框中,默认设置仍为仅侦听localhostIPv4/IPv6 地址,因此,如果您保留其他默认设置,则看起来您仍然会保留传入的 SMTP 端口。

要验证向导是否正常工作,您可以检查 Debian 特有的/etc/exim4/update-exim4.conf.conf(是的,它是一个重复的.conf.conf,这不是打字错误),它在这次惨败中扮演了一定角色。以下是运行dpkg-reconfigure exim4-config并仅更改向导中的第一个选项后的相关部分,该选项允许发送邮件,但保持 SMTP 端口仅对机器本身开放(如果您在第一个选项后单击重新配置,则为默认选项):

dc_eximconfig_configtype='internet'
dc_local_interfaces='127.0.0.1 ; ::1'

另一个解决方案是安装DragonFly 邮件代理在 jessie 及以上 —https://packages.debian.org/jessie/dma— 这是 MTA 的一个简单实现,实现了除传入 SMTP 之外的所有良好的 UNIX 邮件功能,因此,您不必担心配置错误或外部漏洞。

答案3

因为 mailx 需要完整的 SMTP 基础架构,默认情况下未配置该基础架构。您安装了哪种 SMTP 服务器(如果有)(即 postfix、exim、sendmail、qmail)?

答案4

如果您没有安装内部 SMTP 服务器,您可以通过 gmail SMTP 服务器发送邮件,您可以安装 sSMTP MTA 并使用 gMail SMTP 服务器或其他外部 SMTP 服务器对其进行配置。

相关内容