mail
使用Linux 终端命令发送电子邮件时,使用哪个电子邮件帐户:
echo "Body of email" | mail -s "Subject" [email protected]
如果电子邮件未发送,是否需要指定发送电子邮件地址的用户名和密码?mail
我读过的所有教程都没有指定发件人地址。
编辑:如果我收到“不支持向远程域发送邮件”的错误消息,这是否意味着我的 ISP 已阻止发送电子邮件?有什么办法可以解决这个问题吗?谢谢。
答案1
当从 Linux 终端使用邮件命令时,使用哪个电子邮件帐户来发送电子邮件,如下所示:
在默认配置中,它与您用于登录的帐户相同。您的计算机安装了邮件服务器程序 (MTA);通常是 Postfix 或 Exim4,有时是 Sendmail 或 qmail。
此帐户的电子邮件地址为或,可从 获得 FQDN 。但是,目前您无法接收邮件your-login@hostname
your-login@fqdn
hostname -f
到此帐户,因为 MTA 配置为“仅限本地邮件”(如下面的错误消息所示)并且不会接受来自外部的消息。
编辑:如果我收到“不支持向远程域发送邮件”的错误消息,这是否意味着我的 ISP 已阻止发送电子邮件?有什么办法可以解决这个问题吗?
否;此错误消息由您自己的计算机返回。邮件服务器配置为仅传输当地的邮件 – 从一个用户到另一个用户(最常见的是计划任务如果 cronjob 失败,则由守护进程执行。通常这些消息会发送到,,或类似程序,并且可以使用这些程序读取。(如果我没记错的话,Thunderbird 也有导入本地邮件假脱机的功能。)/var/mail/login
mail
mutt
re-alpine
重新配置邮件服务器来发送和接收来自其他站点的邮件并不难;根据安装的 MTA 和 Linux 发行版,甚至一个命令就足够了:例如,dpkg-reconfigure postfix
如果系统是带有 Postfix 的 Debian。
但是,我猜你是在个人电脑上使用它,所以最好使用外部邮件帐户 - 例如,如果你有 Gmail 地址的话。找出安装了哪个 MTA(在 Ubuntu/Debian 上,dpkg -S /usr/sbin/sendmail
会告诉你),然后在 Google 上搜索“ program-name relay gmail
”查看教程。
或者,安装专为中继设计的 MTA;msmtp
是esmtp
不错的选择并且易于配置。
答案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 命令行发送电子邮件了解更多信息