使用终端发送邮件

使用终端发送邮件

所以我有 Linux Mint 20.1,我正在尝试使用命令行发送邮件。准确地说,首先我尝试使用邮件命令:

mail -s "someSubject" "[email protected]" < fileToSend.txt

然而,这根本不起作用,我没有执行命令,而是得到了一个带有 %gt (>) 的终端。据我所知,这意味着我的命令不完整。我用谷歌搜索了一下,似乎我需要做的就是输入 EOF,但这并没有成功,因为“新终端”仍然存在。我尝试查看 /var/log/mail.log 但在那里找不到任何内容。

接下来我尝试的是 sendmail 命令:

sendmail [email protected] < fileToSend.txt

这执行得很好(没有错误或其他什么),但是,我仍然无法收到该邮件,所以我不得不再次检查该日志文件。这次它说了以下内容:

gmail-smtp-in.l.google.com(corresponding IPv4 address and port was here): Connection timed out

alt1.gmail-smtp-in.l.google.com(corresponding IPv6 address and port was here): Network is unreachable

我检查了我的默认网关,它的地址与我的路由器的本地地址相对应,所以没问题。

当我尝试 ping 上面提到的 IPV4 地址时,效果很好。然而,当我尝试 ping 上面提到的 IPv6 地址时:

ping6 -c 4 -I wlp3s0 (IPv6 address here)

它说它无法访问。

任何对此的帮助将不胜感激!

答案1

通常,您的 ISP 会阻止端口 25(出站)。您可以使用以下方法进行测试telnet

$ telnet gmail-smtp-in.l.google.com 25

成功的连接如下所示:

Trying 74.125.68.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp

如果端口 25 被阻止,您将看到:

Trying 2607:f8b0:400e:c06::1a...
Trying 74.125.195.27...
telnet: Unable to connect to remote host: Connection timed out

如果端口 25 被阻止,那么您需要联系您的 ISP 或使用SMTP 中继(我使用 mailjet.com)。

ISP 通常会阻止端口 25,因为如果您开始发送垃圾邮件(或感染发送垃圾邮件的病毒),那么您的 IP 地址可能会被列入黑名单。在某些情况下,整个 IP 块可能会被列入黑名单。 ISP 不希望他们的 IP 块出现在电子邮件黑名单中,因此他们限制用户在端口 25 上发送电子邮件。


如果没有被阻止,则可能是您的配置问题。这是一个较长的主题,需要完整的指南。我用了安装基本-postfix-邮件服务器-ubuntu成功地。

相关内容