当我使用 Linux“邮件”命令时,邮件实际上是如何发送的?

当我使用 Linux“邮件”命令时,邮件实际上是如何发送的?

mail使用Linux 终端命令发送电子邮件时,使用哪个电子邮件帐户:

echo "Body of email" | mail -s "Subject" [email protected]

如果电子邮件未发送,是否需要指定发送电子邮件地址的用户名和密码?mail我读过的所有教程都没有指定发件人地址。

编辑:如果我收到“不支持向远程域发送邮件”的错误消息,这是否意味着我的 ISP 已阻止发送电子邮件?有什么办法可以解决这个问题吗?谢谢。

答案1

当从 Linux 终端使用邮件命令时,使用哪个电子邮件帐户来发送电子邮件,如下所示:

在默认配置中,它与您用于登录的帐户相同。您的计算机安装了邮件服务器程序 (MTA);通常是 Postfix 或 Exim4,有时是 Sendmail 或 qmail。

此帐户的电子邮件地址为或,可从 获得 FQDN 。但是,目前您无法接收邮件your-login@hostnameyour-login@fqdnhostname -f此帐户,因为 MTA 配置为“仅限本地邮件”(如下面的错误消息所示)并且不会接受来自外部的消息。

编辑:如果我收到“不支持向远程域发送邮件”的错误消息,这是否意味着我的 ISP 已阻止发送电子邮件?有什么办法可以解决这个问题吗?

否;此错误消息由您自己的计算机返回。邮件服务器配置为仅传输当地的邮件 – 从一个用户到另一个用户(最常见的是计划任务如果 cronjob 失败,则由守护进程执行。通常这些消息会发送到,,或类似程序,并且可以使用这些程序读取。(如果我没记错的话,Thunderbird 也有导入本地邮件假脱机的功能。)/var/mail/loginmailmuttre-alpine

重新配置邮件服务器来发送和接收来自其他站点的邮件并不难;根据安装的 MTA 和 Linux 发行版,甚至一个命令就足够了:例如,dpkg-reconfigure postfix如果系统是带有 Postfix 的 Debian。

但是,我猜你是在个人电脑上使用它,所以最好使用外部邮件帐户 - 例如,如果你有 Gmail 地址的话。找出安装了哪个 MTA(在 Ubuntu/Debian 上,dpkg -S /usr/sbin/sendmail会告诉你),然后在 Google 上搜索“ program-name relay gmail”查看教程。

或者,安装专为中继设计的 MTA;msmtpesmtp不错的选择并且易于配置。

答案2

mail命令是用当前账号,即 username@domain 来发送邮件的;但是,通常网络服务提供商为了避免垃圾邮件,会阻止用户运行自己的邮件服务器(通过封锁相关端口),因此你的邮件就不会被发送。

但发送问题也可能与您的机器的配置有关。

编辑:启用邮件以从 gmail 等发送电子邮件。将以下信息放入您的 ~/.mailrc 文件中,该文件为邮件提供基础配置。但是,请确保只有您可以访问此文件(使用 chmod 600 ~/.mailrc)

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set [email protected]
set smtp-auth-password=pass
set [email protected]
}

在这种情况下,电子邮件将来自“[电子邮件保护]“。

答案3

例如,它是发送用户的账户名和主机名root@myserver。它不一定是可以从外部接收电子邮件的实际邮箱。

答案4

参考此如何从 Linux 命令行发送电子邮件了解更多信息

相关内容