Mailx和Gmail nss配置目录

Jef*_*eff 15 linux gmail command-line smtp 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
}
Run Code Online (Sandbox Code Playgroud)

我会得到错误:

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.
Run Code Online (Sandbox Code Playgroud)

查找什么"NSS-配置-目录"是经过这里,我所在的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
}
Run Code Online (Sandbox Code Playgroud)

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

echo "sent from gmail account" | mailx -v -A gmail -s "Command line mail" SomeEmail@domain.com
Run Code Online (Sandbox Code Playgroud)

我明白了:

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.
Run Code Online (Sandbox Code Playgroud)

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

任何帮助将非常感激.

Jef*_*eff 11

解决了!

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

  1. 转到此处并按照用户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
    }
    
    Run Code Online (Sandbox Code Playgroud)

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

  • nss的目录是`/ etc/pki/nssdb /`.这也可以用来指向`nss-config-dir`. (5认同)

小智 11

谢谢你,它给了我一个找到更好的解决方案的方法.据说这keyN.dbcertN.db是可信认证中心的数据库.

我做了一个简单的

find / -name "cert*.db"
Run Code Online (Sandbox Code Playgroud)

找到我的系统上我的系统上的文件keyN.dbcertN.db文件(Fedora 20).
我找到了他们/etc/pki/nssdb/.