2013-05-28 34 views
14

Tôi đang cố gắng gửi thư từ dòng lệnh Linux bằng lệnh mailx. Tôi có thể gửi từ miền địa phương của tôi không có vấn đề nhưng tôi muốn thiết lập thư để gửi từ tài khoản Gmail của tôi cũng như nhận thư được gửi đến tài khoản Gmail của tôi.Mailx và thư mục cấu hình nss Gmail

Sau khi cấu hình mail.rc tôi như vậy:

account gmail { 
set smtp=smtps://smtp.gmail.com:587 
set smtp-auth=login 
set [email protected] 
set smtp-auth-password=PASSWORD 
set ssl-verify=ignore 
} 

tôi sẽ nhận được lỗi:

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. 

Sau khi nhìn lên những gì các "NSS-config-dir" là here, tôi nằm các tệp certN.db và keyN.db và thêm tệp đó vào thư.rc của tôi như sau:

account gmail { 
set smtp=smtps://smtp.gmail.com:587 
set smtp-auth=login 
set [email protected] 
set smtp-auth-password=PASSWORD 
set ssl-verify=ignore 
set nss-config-dir=/home/USER/.mozilla/firefox/LOCATION.default 
} 

bây giờ khi tôi cố gắng nd mail sử dụng lệnh này:

echo "sent from gmail account" | mailx -v -A gmail -s "Command line mail" [email protected] 

tôi có được điều này:

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. 

Có ai biết làm thế nào để một trong hai:
A) Thiết lập mailx/mail.rc để truy cập Gmail nhưng bỏ qua cần sự NSS -config-dir BS?
B) Thiết lập mailx/mail.rc để nss-config-dir thực sự hoạt động?
C) Thiết lập mailx/mail.rc để truy cập Gmail theo cách khác (POP có thể không biết nếu đó là một tùy chọn, chưa xem xét?)

Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

10

Cảm ơn bạn vì điều này nó đã cho tôi một cách để tìm một giải pháp tốt hơn. Giả sử các số keyN.dbcertN.db là cơ sở dữ liệu của cơ quan cấp chứng chỉ đáng tin cậy.

Tôi đã làm một đơn giản

find/-name "cert*.db" 

để tìm nơi trên hệ thống của tôi có keyN.dbcertN.db file trên hệ thống của tôi (Fedora 20).
Tôi đã tìm thấy chúng dưới /etc/pki/nssdb/.

8

Giải quyết!

Có 2 cách bạn có thể giải quyết vấn đề này.

  1. Đi qua here và theo dõi người dùng ndasusers câu trả lời. Cả hai sẽ tạo ra các tệp keyN.dbcertN.db mà bạn cần nhưng cũng là một chứng chỉ SSL Gmail khác sẽ giải quyết một vấn đề tiềm ẩn khác.
  2. Hoặc bạn chỉ có thể sao chép các keyN.dbcertN.db vào một thư mục (/etc/ssl/cert maybe) và trực tiếp mail.rc có như vậy:

    account gmail { 
        set smtp=smtps://smtp.gmail.com:587 
        set smtp-auth=login 
        set [email protected] 
        set smtp-auth-password=PASSWORD 
        set ssl-verify=ignore 
        set nss-config-dir=/etc/ssl/cert 
    } 
    

Hãy chắc chắn rằng bạn có quyền truy cập vào các tập tin nếu bạn không root người dùng, điều đó đã làm tôi thất vọng trong một thời gian dài.

+4

Thư mục của nss là '/ etc/pki/nssdb /'. Điều này cũng có thể được sử dụng để trỏ đến 'nss-config-dir'. –

+1

+1 đến @k_o_. Đối với người dùng CentOS, bạn nên sử dụng/etc/pki/nssdb là/etc/pki là vị trí mặc định cho bất kỳ chứng chỉ nào có liên quan và bao gồm một thư mục nssdb. –

Các vấn đề liên quan