Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "crypto/tls"
- "fmt"
- "net/mail"
- "net/smtp"
- "github.com/scorredoira/email"
- )
- const (
- MAIL_SUBJECT = "mail subject"
- MAIL_BODY = "body"
- FROM_NAME = "from_name"
- FROM_ADDRESS = "from@example.com"
- TO_ADDRESS = "to@example.com"
- CSV_FILENAME = "test.csv"
- )
- func buildCSV() string {
- return "asdf,fuga,piyo"
- }
- func sendMail() error {
- m := email.NewMessage(MAIL_SUBJECT, MAIL_BODY)
- m.From = mail.Address{Name: FROM_NAME, Address: FROM_ADDRESS}
- m.To = []string{TO_ADDRESS}
- if err := m.AttachBuffer(CSV_FILENAME, []byte(buildCSV()), false); err != nil {
- return err
- }
- auth := smtp.PlainAuth("", "example@gmail.com", "password", "smtp.gmail.com")
- tlsconfig := &tls.Config{
- InsecureSkipVerify: true,
- ServerName: "smtp.gmail.com",
- }
- conn, err := tls.Dial("tcp", "smtp.gmail.com:465", tlsconfig)
- if err != nil {
- fmt.Println("tls dial error")
- return err
- }
- c, err := smtp.NewClient(conn, "smtp.gmail.com")
- if err != nil {
- fmt.Println("smtp client error")
- return err
- }
- if err := c.Auth(auth); err != nil {
- fmt.Println("smtp auth error")
- return err
- }
- // To && From
- if err = c.Mail("from@example.com"); err != nil {
- fmt.Println("smtp from error")
- return err
- }
- if err = c.Rcpt("to@example.com"); err != nil {
- fmt.Println("smtp rcpt error")
- return err
- }
- // Data
- wd, err := c.Data()
- if err != nil {
- fmt.Println("smtp data error")
- return err
- }
- _, err = wd.Write(m.Bytes())
- if err != nil {
- fmt.Println("smtp write error")
- return err
- }
- err = wd.Close()
- if err != nil {
- fmt.Println("smtp close error")
- return err
- }
- c.Quit()
- return nil
- }
- func main() {
- err := sendMail()
- if err != nil {
- panic(err)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement