Mailx和Gmail的nss配置目录

21
我正在尝试使用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 - 不知道是否可行,还没有研究过)

任何帮助都将非常感激。

2个回答

16

谢谢,这给了我找到了更好的解决方案的路。

据说这些keyN.dbcertN.db是受信任的证书颁发机构数据库。

我做了一个简单的

find / -name "cert*.db"

我需要在我的系统 (Fedora 20) 中找到 keyN.dbcertN.db 文件所在的位置。
我发现它们在 /etc/pki/nssdb/ 下。


14

解决了!

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

  1. 请前往此处,并按照用户ndasusers的回答操作。这将创建您需要的keyN.dbcertN.db文件,还可以解决另一个潜在的问题:GMail SSL证书。
  2. 或者您可以将keyN.dbcertN.db复制到一个文件夹中(例如/etc/ssl/cert),然后像这样将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用户,请确保您具有访问这些文件的权限,否则会给我带来很长时间的麻烦。


7
nss 的目录是 /etc/pki/nssdb/。这个目录也可用于指向 nss-config-dir - k_o_
1
对 @k_o_ 表示赞赏。对于 CentOS 用户,您应该使用 /etc/pki/nssdb 作为与证书相关的默认位置 /etc/pki,并包含 nssdb 目录。 - Mike Purcell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接