如何发送邮件?

如何发送邮件?

我正在尝试使用以下命令从 shell(GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)) 发送邮件;

mail [email protected]

完成命令后,邮件将不会显示在邮箱中。可能出了什么问题,我如何检查我的配置是否正确。谢谢。

答案1

使用“邮件”命令,该命令有一个选项可以显示 SMTP 对话框。 “heirloom”项目有一个这样的命令的好版本:http://heirloom.sourceforge.net/mailx.html

下面是一个“mailx”(显然是 4 年前的 v12.1)命令调用示例,显示了 SMTP 对话框:

10:50AM 2 % mailx -v -s "test email" bediger
test letter text
.
EOT
bediger... Connecting to [127.0.0.1] via relay...
220 mydomain.com ESMTP Sendmail 8.13.8/8.13.3; Wed, 2 Mar 2011 10:50:37 -0700
>>> EHLO myhost.intranet
250-mydomain.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
>>> MAIL From:<[email protected]> SIZE=222 [email protected]
250 2.1.0 <[email protected]>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
250 2.1.5 <[email protected]>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 p22HobSb015513 Message accepted for delivery
bediger... Sent (p22HobSb015513 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 mydomain.com closing connection
10:50AM 3 %

此类信息对于找出电子邮件发送的问题非常宝贵。

答案2

就像每个偶尔需要发送电子邮件通知的 Unix 程序一样,mail假设本地主机上有一个正常运行的 MTA,它 1) 能够接受邮件,2) 知道如何传递邮件。

要了解您正在运行的邮件服务器,请尝试telnet localhost 25查看标识符字符串。

该命令mailq(如果存在)将向您显示本地邮件服务器队列中当前有哪些邮件,可能还会解释为什么邮件尚未传递到目的地。

此外,大多数发行版默认配置 MTA 和 syslog 以将邮件日志消息报告给其中一个/var/log/mail.log或类似的。查找/var/log/任何看起来可行的文件,然后用 grep 查找“bar.com”

抱歉,如果没有更多关于正在发生的事情的信息,很难提供比这更好的建议。

相关内容