2016-04-07 16 views
-1

をクラッシュ:gomailは私が<a href="https://godoc.org/gopkg.in/gomail.v2#example-package--NoAuth" rel="nofollow">this example</a>に従うことをしようとしています

package main 

import (
    "gopkg.in/gomail.v2" 
) 




func main() { 
    m := gomail.NewMessage() 
    m.SetHeader("From", "[email protected]") 
    m.SetHeader("To", "[email protected]") 
    m.SetHeader("Subject", "Hello!") 
    m.SetBody("text/plain", "Hello!") 

    d := gomail.Dialer{Host: "localhost", Port: 587} 
    if err := d.DialAndSend(m); err != nil { 
     panic(err) 
    } 
} //main 

そして、私はこのエラーを得た:

panic: 454 4.7.0 TLS not available due to local problem 

goroutine 1 [running]: 
panic(0x244ca0, 0xc820010b20) 
    /usr/local/Cellar/go/1.6/libexec/src/runtime/panic.go:464 +0x3e6 
main.main() 
    /Users/kaiyin/IdeaProjects/gomail/main.go:19 +0x342 
exit status 2 

私もTLSおよびSSLを無効にすることを試みた:

d := gomail.Dialer{Host: "localhost", Port: 587, SSL: false, TLSConfig: nil} 

しかし、エラーは依然として続きます。だから私はこのような本命生成

Apr 7 14:28:05 kaiyins-mbp postfix/smtpd[64525]: warning: No server certs available. TLS won't be enabled 
Apr 7 14:28:05 kaiyins-mbp postfix/smtpd[64525]: connect from localhost[::1] 
Apr 7 14:28:05 kaiyins-mbp postfix/smtpd[64525]: lost connection after STARTTLS from localhost[::1] 

cd /etc/postfix 
sudo openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509 

を後置の設定を変更し


は、私は(OSX 10.10上のPostfixから)にmail.logに見ていました:

smtpd_enforce_tls    = no 
smtpd_tls_loglevel    = 1 
smtpd_use_tls     = yes 
smtpd_tls_key_file    = /etc/postfix/smtpd.key 
smtpd_tls_cert_file    = /etc/postfix/smtpd.cert 

ここで私は差分トン・エラー:http://www.akadia.com/services/ssh_test_certificate.html

そして、私はまだ別のエラーました:

panic: x509: certificate signed by unknown authority 

goroutine 1 [running]: 
panic(0x26e3c0, 0xc8203e4b80) 
    /usr/local/Cellar/go/1.6/libexec/src/runtime/panic.go:464 +0x3e6 
main.main() 
    /Users/kaiyin/IdeaProjects/gomail/main.go:19 +0x32f 
exit status 2 

私はここで指示されるように証明書を生成しようとした私は、サーバーの名前を得たことを想定

panic: x509: certificate is valid for Kaiyin Zhong, not localhost 

goroutine 1 [running]: 
panic(0x26a7e0, 0xc8203e6800) 
    /usr/local/Cellar/go/1.6/libexec/src/runtime/panic.go:464 +0x3e6 
main.main() 
    /Users/kaiyin/IdeaProjects/gomail/main.go:19 +0x32f 
exit status 2 

を間違っていたので、サーバーFQDNをlocalhostに設定してもう一度やり直しました。

Common Name (e.g. server FQDN or YOUR name) []:localhost 

は、それから私は戻って、以前のエラーになった:

panic: x509: certificate signed by unknown authority 

goroutine 1 [running]: 
panic(0x26e3c0, 0xc8203e6800) 
    /usr/local/Cellar/go/1.6/libexec/src/runtime/panic.go:464 +0x3e6 
main.main() 
    /Users/kaiyin/IdeaProjects/gomail/main.go:19 +0x32f 
exit status 2 
+0

?メールサーバーのログにアクセスできますか? – pregmatch

+0

pregmatchのコメントをフォローアップすると、maillogへのアクセス権がある場合(そのディレクトリパスはOSによって異なります)、なぜ失敗したのかがわかります。 1つの提案は、あなたの証明書を再生成し、それにパスワードを入れないことです。 –

+0

私の編集内容をご覧ください。 – qed

答えて

0

設定しInsecureSkipVerifyオプション:

package main 

import (
    "crypto/tls" 

    "gopkg.in/gomail.v2" 
) 

func main() { 
    d := gomail.NewDialer("smtp.example.com", 587, "user", "123456") 
    d.TLSConfig = &tls.Config{InsecureSkipVerify: true} 

    // Send emails using d. 
} 

出典:https://github.com/go-gomail/gomailローカルコンピュータ/サーバに持って何をすべきか、SMTPサーバー

関連する問題

 関連する問題