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


11

因此,我想从服务器发送电子邮件。

我安装了 mailx

apt-get install mailx

但是这样的命令

mail -s "Hello world" me@gmail.com

实际上在/ var / spool / mail /中给出错误,内容为:

Mailing to remote domains not supported.

为什么会这样呢?

Answers:


17

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


1
从这里的日志文件来看,它看起来像例4.69
bobobobo

6
如果您正在运行Debian / Ubuntu,则需要编辑/etc/exim4/update-exim4.conf.conf和更改该行以读取dc_eximconfig_configtype='internet'并重新启动exim。如果您使用的是其他发行版,请确保此行如下所示hostlist relay_from_hosts = 127.0.0.1
vmfarms 2010年

10
实际上,我使用了dpkg-reconfigure exim4-config“向导”命令,它现在可以工作了!谢谢!
bobobobo

2

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


我相信我已经出门了
bobobobo

1
# 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(是,是double .conf.conf,不是错字),这在这场惨败中发挥了作用。这是运行后dpkg-reconfigure exim4-config仅更改向导中的第一个选项(可以启用发送邮件),但使SMTP端口仅对计算机本身开放的相关部分(如果您在第一个选项之后仅单击重新配置中的默认选项,则为默认选项) :

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

另一个解决方案是在jessie及更高版本中安装DragonFly Mail Agenthttps://packages.debian.org/jessie/dma),这是MTA的简单实现,除了传入的SMTP外,还实现了所有好的UNIX邮件功能,因此,您不必担心配置错误或外部漏洞。


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.