我可以检索电子邮件并浏览各种文件夹。但是,由于证书错误,我无法发送任何电子邮件(如下所述)。互联网上的一些配置提供了cert文件的路径,但OSX使用了一个钥匙串。我没有在Google上找到任何描述如何为OSX(Mountain Lion)设置此内容的内容。任何帮助将不胜感激。
[我是not
使用gmail。]
互联网上的其他用户引用了与此类似的配置:(setq ssl-program-name "gnutls-cli" ssl-program-arguments '("--port" service "--insecure" "--x509cafile" "/etc/ssl/certs/ca-certificates.crt" host))
但是,由于钥匙串的使用,OSX上的证书没有此类文件位置。我认为这是问题,但我不完全确定。
我遇到与gnu电子邮件相同的问题,文档说明:
The SMTP server may also request that you verify your identity by sending a certificate and the associated encryption key to the server. If you need to do this, you can use an ~/.authinfo entry like this:
machine mail.example.org port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
这是我目前的配置:
(setq ssl-program-name "/absolute/path/to/gnutls-cli"
ssl-program-arguments '("--insecure" "-p" service host)
ssl-certificate-verification-policy 1)
(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-other-frame "wl" "Wanderlust on new frame." t)
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
;; IMAP
(setq elmo-imap4-default-server "mail.mydomain.com")
(setq elmo-imap4-default-user "myusername")
(setq elmo-imap4-default-authenticate-type 'login)
(setq elmo-imap4-default-port '993)
(setq elmo-imap4-default-stream-type 'ssl)
(setq elmo-imap4-use-modified-utf7 t)
;; SMTP
(setq wl-smtp-connection-type 'starttls)
(setq wl-smtp-posting-port 587)
(setq wl-smtp-authenticate-type "login")
(setq wl-smtp-posting-user "myusername")
(setq wl-smtp-posting-server "mail.mydomain.com")
(setq wl-local-domain "mydomain.com")
(setq wl-default-folder "%INBOX")
(setq wl-default-spec "%")
;; (setq wl-draft-folder "%Drafts")
(setq wl-trash-folder "%Trash")
(setq wl-folder-check-async t)
(setq elmo-imap4-use-modified-utf7 t)
(autoload 'wl-user-agent-compose "wl-draft" nil t)
(if (boundp 'mail-user-agent)
(setq mail-user-agent 'wl-user-agent))
(if (fboundp 'define-mail-user-agent)
(define-mail-user-agent
'wl-user-agent
'wl-user-agent-compose
'wl-draft-send
'wl-draft-kill
'mail-send-hook))
这是发送电子邮件时的错误消息:
*** Starting TLS handshake
- Certificate type: X.509
- Got a certificate list of 2 certificates.
- Certificate[0] info:
- subject `OU=Domain Control Validated,CN=*.liquidweb.com', issuer `C=BE,O=GlobalSign nv-sa,CN=GlobalSign Domain Validation CA - G2', RSA key 2048 bits, signed using RSA-SHA1, activated `2013-02-22 16:03:14 UTC', expires `2018-02-22 16:03:14 UTC', SHA-1 fingerprint `f9926583e10585ca301bec7ec8d36d7e4573750d'
Public Key Id:
3ff7ead3d8a2be6cf1e48d072a5be80afe5183de
Public key's random art:
+--[ RSA 2048]----+
| |
| |
| |
| . |
| . S |
| . o +. o |
| . o E +*.B |
| . . o.oooB.= |
| ..o.o==+o=. |
+-----------------+
- Certificate[1] info:
- subject `C=BE,O=GlobalSign nv-sa,CN=GlobalSign Domain Validation CA - G2', issuer `C=BE,O=GlobalSign nv-sa,OU=Root CA,CN=GlobalSign Root CA', RSA key 2048 bits, signed using RSA-SHA1, activated `2011-04-13 10:00:00 UTC', expires `2022-04-13 10:00:00 UTC', SHA-1 fingerprint `0481c8ca31be0fa940c7e0ccd572374eadf52b73'
- Status: The certificate is NOT trusted. The certificate issuer is unknown. The name in the certificate does not match the expected.
*** Verifying server certificate failed...
*** Fatal error: Error in the certificate.
*** Handshake has failed
byte-code: Wrong type argument: arrayp, nil
答案 0 :(得分:2)
;; IMAP
(setq elmo-imap4-default-server "mail.mydomain.com")
(setq elmo-imap4-default-user "my-user-name")
(setq elmo-imap4-default-authenticate-type 'login)
(setq elmo-imap4-default-port '993)
(setq elmo-imap4-default-stream-type 'ssl)
(setq elmo-imap4-use-modified-utf7 t)
(setq elmo-network-session-idle-timeout 30)
;; SMTP
(setq ssl-program-name "openssl s_client -ssl2 -connect %s:%p")
(setq smtpmail-auth-credentials '(("mail.mydomain.com" 587 "my-user-name" "my-password")))
(setq smtp-server "mail.mydomain.com")
答案 1 :(得分:1)
嗯,我并没有真正解决问题,但只是在使用ssl跟踪使用最终正确的端口支持谷歌邮件的workdoud。但是,当设置另一个SMTP服务器INSISTS在STARTTLS或TLS上的电子邮件帐户时,该问题再次让我感到困惑。因此,您报告的问题仍然存在。我花了半天时间寻找解决方案,却找不到解决方案。大多数内容是关于使用gnutls-cli --tofu选项而不是--insecure的小谈话。
http://lists.gnu.org/archive/html/info-gnus-english/2012-04/msg00001.html
然而,这导致我深入到emacs中,我无法找到改变gnutls-cli被调用的选项的方法。
问题的最佳解决方案很可能是找出OSX上丢失的密钥和crts的位置或如何创建它们然后将它们放在正确的位置。有任何帮助,提示,评论吗?
答案 2 :(得分:1)
使用--tofu选项,您走在正确的轨道上。完成以下步骤here后,您需要执行的操作是在.emacs
中添加以下内容(setq starttls-extra-arguments '("--tofu"))
(您也可以通过emacs的自定义界面进行设置。)这将允许您将任何参数传递给您希望的gnutls-cli。