【问题标题】:Mailx and Gmail nss config dir [closed]Mailx 和 Gmail nss 配置目录 [关闭]
【发布时间】:2013-05-23 20:36:24
【问题描述】:

我正在尝试使用 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 可能 - 不知道这是否是一个选项,没有研究过?)

任何帮助将不胜感激。

【问题讨论】:

    标签: linux command-line smtp gmail mailx


    【解决方案1】:

    解决了!

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

    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
      }
      

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

    【讨论】:

    • nss的目录是/etc/pki/nssdb/。这也可以用来指向nss-config-dir
    • +1 到 @k_o_ 。对于 CentOS 用户,您应该使用 /etc/pki/nssdb,因为 /etc/pki 是任何与证书相关的默认位置,并且包含一个 nssdb 目录。
    【解决方案2】:

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

    我做了一个简单的

    find / -name "cert*.db"
    

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

    【讨论】:

      猜你喜欢
      • 2017-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多