diff --git a/email.go b/email.go deleted file mode 100644 index 20dffb4..0000000 --- a/email.go +++ /dev/null @@ -1,73 +0,0 @@ -package main - -import ( - "crypto/tls" - "fmt" - "net/smtp" - "strings" -) - -type Emailer struct { - From string - SMTP string - POP3 string - Password string -} - -func (e *Emailer) Send(to, subj, msg string) error { - headers := e.headers(to, e.From, subj) - body := e.body(headers, msg) - smtp, err := e.smtp() - if err != nil { - return err - } - defer smtp.Quit() - if err := smtp.Mail(e.From); err != nil { - return err - } - if err := smtp.Rcpt(to); err != nil { - return err - } - w, err := smtp.Data() - if err != nil { - return err - } - if _, err := w.Write([]byte(body)); err != nil { - return err - } - return w.Close() -} - -func (e *Emailer) headers(to, from, subj string) map[string]string { - return map[string]string{ - "To": to, - "From": from, - "Subject": subj, - } -} - -func (e *Emailer) body(headers map[string]string, body string) string { - b := "" - for k, v := range headers { - b += fmt.Sprintf("%s: %s\r\n", k, v) - } - return b + "\r\n" + body -} - -func (e *Emailer) smtp() (*smtp.Client, error) { - host := strings.Split(e.SMTP, ":")[0] - auth := smtp.PlainAuth("", e.From, e.Password, host) - tlsconfig := &tls.Config{ServerName: host} - conn, err := tls.Dial("tcp", e.SMTP, tlsconfig) - if err != nil { - return nil, fmt.Errorf("cannot dial %v: %v", e.SMTP, err) - } - smtp, err := smtp.NewClient(conn, host) - if err != nil { - return nil, fmt.Errorf("cannot new client %v: %v", host, err) - } - if err := smtp.Auth(auth); err != nil { - return nil, fmt.Errorf("cannot auth client: %v", err) - } - return smtp, nil -} diff --git a/main.go b/main.go old mode 100644 new mode 100755 index c6b01e8..6a61e9e --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "local/args" + "local/sandbox/contact/contact" ) func main() { @@ -16,7 +17,7 @@ func main() { if err := as.Parse(); err != nil { panic(err) } - emailer := &Emailer{ + emailer := &contact.Emailer{ From: as.Get("from").GetString(), SMTP: as.Get("smtp").GetString(), POP3: as.Get("pop3").GetString(), diff --git a/vendor/github.com/taknb2nch/go-pop3/LICENSE b/vendor/github.com/taknb2nch/go-pop3/LICENSE old mode 100644 new mode 100755 diff --git a/vendor/github.com/taknb2nch/go-pop3/README.md b/vendor/github.com/taknb2nch/go-pop3/README.md old mode 100644 new mode 100755 diff --git a/vendor/github.com/taknb2nch/go-pop3/pop3.go b/vendor/github.com/taknb2nch/go-pop3/pop3.go old mode 100644 new mode 100755 diff --git a/vendor/github.com/taknb2nch/go-pop3/pop3proto.go b/vendor/github.com/taknb2nch/go-pop3/pop3proto.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/LICENSE b/vendor/golang.org/x/crypto/LICENSE old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/PATENTS b/vendor/golang.org/x/crypto/PATENTS old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/cast5/cast5.go b/vendor/golang.org/x/crypto/cast5/cast5.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/armor/armor.go b/vendor/golang.org/x/crypto/openpgp/armor/armor.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/armor/encode.go b/vendor/golang.org/x/crypto/openpgp/armor/encode.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/canonical_text.go b/vendor/golang.org/x/crypto/openpgp/canonical_text.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go b/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/errors/errors.go b/vendor/golang.org/x/crypto/openpgp/errors/errors.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/keys.go b/vendor/golang.org/x/crypto/openpgp/keys.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/compressed.go b/vendor/golang.org/x/crypto/openpgp/packet/compressed.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/config.go b/vendor/golang.org/x/crypto/openpgp/packet/config.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go b/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/literal.go b/vendor/golang.org/x/crypto/openpgp/packet/literal.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go b/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go b/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/opaque.go b/vendor/golang.org/x/crypto/openpgp/packet/opaque.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/packet.go b/vendor/golang.org/x/crypto/openpgp/packet/packet.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/private_key.go b/vendor/golang.org/x/crypto/openpgp/packet/private_key.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/public_key.go b/vendor/golang.org/x/crypto/openpgp/packet/public_key.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go b/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/reader.go b/vendor/golang.org/x/crypto/openpgp/packet/reader.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/signature.go b/vendor/golang.org/x/crypto/openpgp/packet/signature.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go b/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go b/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go b/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/userattribute.go b/vendor/golang.org/x/crypto/openpgp/packet/userattribute.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/packet/userid.go b/vendor/golang.org/x/crypto/openpgp/packet/userid.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/read.go b/vendor/golang.org/x/crypto/openpgp/read.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go b/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/openpgp/write.go b/vendor/golang.org/x/crypto/openpgp/write.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go old mode 100644 new mode 100755 diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go old mode 100644 new mode 100755 diff --git a/vendor/vendor.json b/vendor/vendor.json old mode 100644 new mode 100755