47 lines
816 B
Go
47 lines
816 B
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"log"
|
|
"flag"
|
|
"net/smtp"
|
|
"io/ioutil"
|
|
)
|
|
|
|
var from *string
|
|
var to *string
|
|
var subject *string
|
|
var server *string
|
|
|
|
func init() {
|
|
from = flag.String("from", "", "From email address")
|
|
to = flag.String("to", "", "To email address")
|
|
subject = flag.String("subject", "", "To email subject")
|
|
server = flag.String("server", "smtp.ziggozakelijk.nl:25", "The SMTP server")
|
|
flag.Parse()
|
|
}
|
|
|
|
func main() {
|
|
c, err := smtp.Dial(*server)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer c.Close()
|
|
|
|
c.Mail(*from)
|
|
c.Rcpt(*to)
|
|
|
|
wc, err := c.Data()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer wc.Close()
|
|
|
|
wc.Write([]byte("From: " + *from + "\r\n"))
|
|
wc.Write([]byte("To: " + *to + "\r\n"))
|
|
wc.Write([]byte("Subject: " + *subject + "\r\n\r\n"))
|
|
|
|
msg, err := ioutil.ReadAll(os.Stdin)
|
|
wc.Write(msg)
|
|
}
|