我正在尝试测试我的服务器的邮件功能。我只需执行此操作,然后它会提示我输入正文。输入后,我按下 Control + D,但似乎它没有退出正文。我在这里遗漏了什么?mail -s "This is a test" [email protected]
Cc:
答案1
你可以用一行代码发送邮件
echo "This is the mail body" | mail -s "This is the subject" [email protected]
无需进一步输入。
答案2
这可能是由于配置错误而发生的mail
。
要了解问题,请打开调试机制,例如:
$mail -s "test" [email protected] --debug-level=3
Cc:
Hello. This is a test.
.
.(doesn't work until Ctrl+D, I'm using mailutils package)
.
sendmail (/usr/sbin/sendmailn
source=system, name=user, passwd=x, uid=1000, gid=1000, gecos=,,,, dir=/home/user, shell=/bin/bash, mailbox=/var/mail/user, quota=0, change_uid=1
source=system, name=user, passwd=x, uid=1000, gid=1000, gecos=,,,, dir=/home/user, shell=/bin/bash, mailbox=/var/mail/user, quota=0, change_uid=1
mu_mailer_send_message(): using From: user@example
Sending headers...
Sending body...
^C
(请注意配置错误的 user@example)
因此进程停止发送正文。您还可以检查/var/log/mail.{err,log}
。要正确配置 smtp,请参阅例如这。
答案3
除了 Yaroslav 在 2016 年给出的出色回答之外,一个常见的配置错误是主机名配置不正确。Sendmail 需要完全限定的域名才能发送邮件,但很容易被欺骗,认为主机名是myhostname
这样的,只需将该名称添加到 的第一行/etc/hosts
即可,如下所述:https://linuxconfig.org/sendmail-unqualified-hostname-unknown-sleeping-for-retry-unqualified-hostname