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
解决了!
有两种方法可以解决这个问题.
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
}
Run Code Online (Sandbox Code Playgroud)如果您不是root用户,请确保您有权访问这些文件,这让我感到困扰.
小智 11
谢谢你,它给了我一个找到更好的解决方案的方法.据说这keyN.db和certN.db是可信认证中心的数据库.
我做了一个简单的
find / -name "cert*.db"
Run Code Online (Sandbox Code Playgroud)
找到我的系统上我的系统上的文件keyN.db和certN.db文件(Fedora 20).
我找到了他们/etc/pki/nssdb/.
| 归档时间: |
|
| 查看次数: |
29465 次 |
| 最近记录: |