20

我正在尝试使用 mailx 命令从 Linux 命令行发送邮件。我可以从本地域发送没有问题,但我想设置邮件从我的 Gmail 帐户发送以及接收发送到我的 Gmail 帐户的邮件。

像这样配置我的mail.rc之后:

account gmail {
set smtp=smtps://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=USERNAME@gmail.com
set smtp-auth-password=PASSWORD
set ssl-verify=ignore
}

我会得到错误:

Resolving host smtp.gmail.com . . . done.
Connecting to 74.125.25.109 . . . connected.
Missing "nss-config-dir" variable.
"/home/USERNAME/dead.letter" 11/354
. . . message not sent.

在查看了“nss-config-dir”是什么之后,我找到certN.db 和 keyN.db 文件并将其添加到我的 mail.rc 中,如下所示:

account gmail {
set smtp=smtps://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=USERNAME@gmail.com
set smtp-auth-password=PASSWORD
set ssl-verify=ignore
set nss-config-dir=/home/USER/.mozilla/firefox/LOCATION.default
}

现在,当我尝试使用此命令发送邮件时:

echo "sent from gmail account" | mailx -v -A gmail -s "Command line mail" SomeEmail@domain.com

我明白了:

Resolving host smtp.gmail.com . . . done.
Connecting to 74.125.25.108 . . . connected.
COMMENT-->then it waits there for about 5 mins then spits out this:
SSL/TLS handshake failed: Unknown error -5938.
"/home/USER/dead.letter" 11/354
. . . message not sent.

有谁知道如何:
A) 设置 mailx/mail.rc 以访问 Gmail,但忽略需要 nss-config-dir BS?
B) 设置 mailx/mail.rc 以便 nss-config-dir 实际工作?
C)设置 mailx/mail.rc 以另一种方式访问​​ Gmail(POP 可能 - 不知道这是否是一个选项,没有研究过吗?)

任何帮助将不胜感激。

4

2 回答 2

14

解决了!

有两种方法可以解决这个问题。

  1. 这里并按照用户的ndasusers回答。它不仅会创建您需要的keyN.db文件,还会创建certN.db另一个 GMail SSL 证书,以解决另一个潜在问题。
  2. 或者您可以将keyN.dband复制certN.db到一个文件夹 ( /etc/ssl/cert maybe) 中,然后像这样直接mail.rc在那里:

    account gmail {
        set smtp=smtps://smtp.gmail.com:587
        set smtp-auth=login
        set smtp-auth-user=USERNAME@gmail.com
        set smtp-auth-password=PASSWORD
        set ssl-verify=ignore
        set nss-config-dir=/etc/ssl/cert
    }
    

root如果您不是用户,请确保您有权访问这些文件,这让我很困扰。

于 2013-05-29T14:05:39.633 回答
13

谢谢你,它给了我一种找到更好解决方案的方法。假设这些keyN.dbcertN.db是受信任的证书颁发机构的数据库。

我做了一个简单的

find / -name "cert*.db"

查找我的系统上哪里有我的系统上的keyN.dbcertN.db文件(Fedora 20)。
我在/etc/pki/nssdb/.

于 2014-01-21T19:15:56.117 回答