如何在 Linux 中设置 mail/mailx 来发送邮件到外部域?

如何在 Linux 中设置 mail/mailx 来发送邮件到外部域?

如果我正确理解了电子邮件,我需要先设置 smtp 配置,然后我的客户端才能将电子邮件发送到外部域?如果是这样,我应该在 linux 的 mail/mailx 命令中的哪里进行设置?

答案1

mail/mailx 希望能够通过sendmail命令发送邮件(这是传统的 Unix 上发送邮件的方式)。

惯例是有一个 sendmail在标准输入上接受邮件的命令。

虽然这个惯例起源于“sendmail”邮件服务器(呵呵),但大多数其他邮件服务器都提供这样的 sendmail 命令。因此,您需要设置一个本地运行的邮件服务器,至少用于发送邮件。

有很多选择,大多数 Linux 发行版都会为您设置一个,通常是 postfix 或 Exim。请查看发行版的文档以了解详细信息。

答案2

如果您使用的是 Fedora/Redhat/Centos,则可以使用 Postfix 或 sendmail。Postfix 可能更容易配置。您还需要一个 MAA(例如 Dovecot)来检索您的来信。

答案3

您可以通过外部 smtp 服务器(可以是 gmail 或您自己的 ISP)设置 postfix 电子邮件中继。

看这里:

https://easyengine.io/tutorials/linux/ubuntu-postfix-gmail-smtp/

和这里:

https://www.howtoforge.com/tutorial/configure-postfix-to-use-gmail-as-a-mail-relay/

之后,您可以从命令行发送电子邮件,并以 Debian 9 stretch 为例。

请注意,-eecho 允许使用换行符,并且-rmailx 会显示姓名以及外发电子邮件地址:

$ echo -e "testing email via yourisp.com from command line\n\nsent on: $(date)" | mailx -r "Foghorn Leghorn <[email protected]>" -s "test cli email $(date)" -- [email protected]

希望这可以帮助!

相关内容