Mailx和Gmail nss配置目录

时间:2013-05-28 18:57:26

标签: linux command-line smtp gmail mailx

我正在尝试使用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”为here之后,我找到了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 个答案:

答案 0 :(得分:11)

解决了!

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

  1. 转到here并按照用户ndasusers回答。它既可以创建您需要的keyN.dbcertN.db文件,也可以创建另一个可以解决其他潜在问题的GMail SSL证书。
  2. 或者您可以将keyN.dbcertN.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
    }
    
  3. 如果您不是root用户,请确保您有权访问这些文件,这会让我感到困扰。

答案 1 :(得分:11)

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

我做了一个简单的

find / -name "cert*.db"

查找我的系统中keyN.dbcertN.db个文件的位置 在我的系统上(Fedora 20) 我在/etc/pki/nssdb/下找到了它们。