我正在尝试使用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也许 - 不知道这是否是一个选项,还没有调查过它?)
任何帮助都会受到超级赞赏。
答案 0 :(得分:11)
解决了!
有两种方法可以解决这个问题。
ndasusers
回答。它既可以创建您需要的keyN.db
和certN.db
文件,也可以创建另一个可以解决其他潜在问题的GMail SSL证书。或者您可以将keyN.db
和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
用户,请确保您有权访问这些文件,这会让我感到困扰。
答案 1 :(得分:11)
谢谢你,它让我找到了一个更好的解决方案。
据推测,这些keyN.db
和certN.db
是受信任的证书颁发机构的数据库。
我做了一个简单的
find / -name "cert*.db"
查找我的系统中keyN.db
和certN.db
个文件的位置
在我的系统上(Fedora 20)
我在/etc/pki/nssdb/
下找到了它们。