无法使用mailx发送邮件

Den*_*son 3 email gmail command-line 20.04

有人可以帮忙解决这个错误吗?:

mailx -s "test message" recipient@gmail.com Cc: This is a test message
cannot send message: Process exited with a non-zero status
Run Code Online (Sandbox Code Playgroud)

我在尝试从命令行使用 mailx 时收到此消息。

and*_*.46 7

我给你的最好建议是实际用于此目的,这比Ubuntu 下可用的各种版本的 etcs-nail少得多。mailx / bsd-mailx / heirloom-mailx特别是可以直接s-nail发送到外部 SMTP 服务器(例如 Gmail),而无需增加 Postfix 等应用程序的复杂性。

s-nail可以按如下方式安装:

sudo apt-get install s-nail
Run Code Online (Sandbox Code Playgroud)

然后,您需要创建一个配置文件并适当地设置权限:

touch ~/.mailrc
chmod 0600 ~/.mailrc
Run Code Online (Sandbox Code Playgroud)

使用您喜欢的文本编辑器打开此文件并将以下信息粘贴到其中。请注意我大部分用“xxxxx”标记的部分,您需要在其中添加自己的详细信息(通常是用户名和密码):

sudo apt-get install s-nail
Run Code Online (Sandbox Code Playgroud)

我已经在我的 Ubuntu 20.04 系统上进行了设置,并且运行完美。请参阅下面我运行建议的测试电子邮件的位置(注意我已经修改了测试电子邮件地址):

$ echo "Testing, Testing, Testing" | s-nail -s "My test..." xxxxx@gmail.com
s-nail: P(seudo)R(andom)N(umber)G(enerator): *TLS RAND_*
s-nail: Resolving host smtp.gmail.com:465 ... done
s-nail: Connecting to 74.125.130.108:465 ...  connected.
s-nail:  Certificate depth 2 
s-nail:   subject = /OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
s-nail:   notBefore = Dec 15 08:00:00 2006 GMT
s-nail:   notAfter = Dec 15 08:00:00 2021 GMT
s-nail:   issuer = /OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
s-nail:  Certificate depth 1 
s-nail:   subject = /C=US/O=Google Trust Services/CN=GTS CA 1O1
s-nail:   notBefore = Jun 15 00:00:42 2017 GMT
s-nail:   notAfter = Dec 15 00:00:42 2021 GMT
s-nail:   issuer = /OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
s-nail:  Certificate depth 0 
s-nail:   subject = /C=US/ST=California/L=Mountain View/O=Google LLC/CN=smtp.gmail.com
s-nail:   notBefore = Nov  3 07:37:59 2020 GMT
s-nail:   notAfter = Jan 26 07:37:59 2021 GMT
s-nail:   issuer = /C=US/O=Google Trust Services/CN=GTS CA 1O1
s-nail: Comparing subject_alt_name: need<smtp.gmail.com> is<smtp.gmail.com>
s-nail: TLS certificate ok
s-nail: TLS BLAKE2s256 fingerprint: 0C:F8:DA:33:CE:15:EA:7F:F6:8B:28:C1:95:33:A0:1D:01:B7:F3:D8:E2:7B:29:42:70:D6:4B:6A:6D:16:8A:CF
s-nail: TLS connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
Run Code Online (Sandbox Code Playgroud)

希望这也适用于您的 Ubuntu 20.04 系统!

笔记

  1. 应用程序密码:在现代,您需要向 Google 创建一个应用程序密码,以便 s-nail 才能成功访问 Gmail: https: //support.google.com/accounts/answer/185833
  2. 符号链接:大多数 Linux 发行版实际上会将 s-nail 符号链接到 mailx,因此该命令mailx将被调用s-nail,但在 Ubuntu 20.04 下似乎并非如此。毫无疑问,这可以手动完成。