diff options
Diffstat (limited to 'cmd/ponzu/vendor/github.com/nilslice/email')
4 files changed, 0 insertions, 210 deletions
diff --git a/cmd/ponzu/vendor/github.com/nilslice/email/LICENSE b/cmd/ponzu/vendor/github.com/nilslice/email/LICENSE deleted file mode 100644 index 6ac9da6..0000000 --- a/cmd/ponzu/vendor/github.com/nilslice/email/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Steve Manuel - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/cmd/ponzu/vendor/github.com/nilslice/email/README.md b/cmd/ponzu/vendor/github.com/nilslice/email/README.md deleted file mode 100644 index 190c61f..0000000 --- a/cmd/ponzu/vendor/github.com/nilslice/email/README.md +++ /dev/null @@ -1,51 +0,0 @@ -## Email - -I needed a way to send email from a [Ponzu](https://ponzu-cms.org) installation -running on all kinds of systems without shelling out. `sendmail` or `postfix` et -al are not standard on all systems, and I didn't want to force users to add API -keys from a third-party just to send something like an account recovery email. - -### Usage: -`$ go get github.com/nilslice/email` - -```go -package main - -import ( - "fmt" - "github.com/nilslice/email" -) - -func main() { - msg := email.Message{ - To: "you@server.name", // do not add < > or name in quotes - From: "me@server.name", // do not add < > or name in quotes - Subject: "A simple email", - Body: "Plain text email body. HTML not yet supported, but send a PR!", - } - - err := msg.Send() - if err != nil { - fmt.Println(err) - } -} - -``` - -### Under the hood -`email` looks at a `Message`'s `To` field, splits the string on the @ symbol and -issues an MX lookup to find the mail exchange server(s). Then it iterates over -all the possibilities in combination with commonly used SMTP ports for non-SSL -clients: `25, 2525, & 587` - -It stops once it has an active client connected to a mail server and sends the -initial information, the message, and then closes the connection. - -Currently, this doesn't support any additional headers or `To` field formatting -(the recipient's email must be the only string `To` takes). Although these would -be fairly strightforward to implement, I don't need them yet.. so feel free to -contribute anything you find useful. - -#### Warning -Be cautious of how often you run this locally or in testing, as it's quite -likely your IP will be blocked/blacklisted if it is not already.
\ No newline at end of file diff --git a/cmd/ponzu/vendor/github.com/nilslice/email/email.go b/cmd/ponzu/vendor/github.com/nilslice/email/email.go deleted file mode 100644 index 15f0a49..0000000 --- a/cmd/ponzu/vendor/github.com/nilslice/email/email.go +++ /dev/null @@ -1,119 +0,0 @@ -package email - -import ( - "fmt" - "net" - "net/smtp" - "strings" -) - -// Message creates a email to be sent -type Message struct { - To string - From string - Subject string - Body string -} - -var ( - ports = []int{25, 2525, 587} -) - -// Send sends a message to recipient(s) listed in the 'To' field of a Message -func (m Message) Send() error { - if !strings.Contains(m.To, "@") { - return fmt.Errorf("Invalid recipient address: <%s>", m.To) - } - - host := strings.Split(m.To, "@")[1] - addrs, err := net.LookupMX(host) - if err != nil { - return err - } - - c, err := newClient(addrs, ports) - if err != nil { - return err - } - - err = send(m, c) - if err != nil { - return err - } - - return nil -} - -func newClient(mx []*net.MX, ports []int) (*smtp.Client, error) { - for i := range mx { - for j := range ports { - server := strings.TrimSuffix(mx[i].Host, ".") - hostPort := fmt.Sprintf("%s:%d", server, ports[j]) - client, err := smtp.Dial(hostPort) - if err != nil { - if j == len(ports)-1 { - return nil, err - } - - continue - } - - return client, nil - } - } - - return nil, fmt.Errorf("Couldn't connect to servers %v on any common port.", mx) -} - -func send(m Message, c *smtp.Client) error { - if err := c.Mail(m.From); err != nil { - return err - } - - if err := c.Rcpt(m.To); err != nil { - return err - } - - msg, err := c.Data() - if err != nil { - return err - } - - if m.Subject != "" { - _, err = msg.Write([]byte("Subject: " + m.Subject + "\r\n")) - if err != nil { - return err - } - } - - if m.From != "" { - _, err = msg.Write([]byte("From: <" + m.From + ">\r\n")) - if err != nil { - return err - } - } - - if m.To != "" { - _, err = msg.Write([]byte("To: <" + m.To + ">\r\n")) - if err != nil { - return err - } - } - - _, err = fmt.Fprint(msg, m.Body) - if err != nil { - return err - } - - err = msg.Close() - if err != nil { - return err - } - - err = c.Quit() - if err != nil { - return err - } - - return nil -} diff --git a/cmd/ponzu/vendor/github.com/nilslice/email/email_test.go b/cmd/ponzu/vendor/github.com/nilslice/email/email_test.go deleted file mode 100644 index 3576a79..0000000 --- a/cmd/ponzu/vendor/github.com/nilslice/email/email_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package email - -import ( - "testing" -) - -func TestSend(t *testing.T) { - m := Message{ - To: "", - From: "", - Subject: "", - Body: "", - } - - err := m.Send() - if err != nil { - t.Fatal("Send returned error:", err) - } -} |