-
-
Save atomaths/5409475 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"flag" | |
"fmt" | |
"io/ioutil" | |
"net/smtp" | |
"os" | |
) | |
const ( | |
FROM = "[email protected]" | |
) | |
var ( | |
mailTemplate = flag.String("f", "", "전송할 메일 템플릿") | |
toEmail = flag.String("to", "", "받을 이메일 주소") | |
) | |
func main() { | |
flag.Parse() | |
if *mailTemplate == "" || *toEmail == "" { | |
flag.PrintDefaults() | |
return | |
} | |
subject := "테스트 메일" | |
content, _ := ioutil.ReadFile(*mailTemplate) | |
// Set up authentication information. | |
auth := smtp.PlainAuth( | |
"", | |
FROM, | |
os.Getenv("GMAIL_PASSWD"), | |
"smtp.gmail.com", | |
) | |
mime := "MIME-version: 1.0;\r\nContent-Type: text/html; charset=\"UTF-8\";\r\n\r\n" | |
msg := "Subject: " + subject + "\r\n" + mime + string(content) | |
err := smtp.SendMail( | |
"smtp.gmail.com:587", | |
auth, | |
FROM, | |
[]string{*toEmail}, | |
[]byte(msg), | |
) | |
if err != nil { | |
panic(err) | |
} | |
fmt.Println("Sent!!") | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"encoding/csv" | |
"log" | |
"net/smtp" | |
"os" | |
) | |
func main() { | |
subj := "[GDG Korea Golang] 고 언어 미니 컨퍼런스에 잊지 말고 참석해 주세요" | |
cont := `님 안녕하세요. | |
고 언어 미니컨퍼러스에 참가 신청을 해 주셔서 감사합니다.\n" | |
참가 선정이 되셨습니다. | |
* 시간: 2013년 4월 20일 (토요일) | |
* 장소: CNN THE BIZ 강남센터 | |
구글 캘린더를 사용하신다면, | |
아래 이벤트 링크를 통해 시간과 장소를 | |
쉽게 개인 달력에 등록 하실 수 있습니다. | |
https://plus.google.com/events/cgeohki6hci7ea4e30o43mevp7g | |
행사에 대해 궁금하신 점은 답 메일로 물어보시거나, | |
GDG Korea Golang 커뮤니티에 편하게 남겨 주시기 바랍니다. | |
https://plus.google.com/communities/115721275599816202991 | |
그럼, 컨퍼런스 당일에 뵙겠습니다. | |
감사합니다. | |
` | |
// Set up authentication information. | |
auth := smtp.PlainAuth( | |
"", | |
os.Getenv("GMAIL_ACCOUNT"), | |
os.Getenv("GMAIL_PASSWD"), | |
"smtp.gmail.com", | |
) | |
for p := range ReceiptanceIter() { | |
log.Println("Sending to", p.Name, "...") | |
fc := "Subject: " + subj + "\r\n\r\n" + p.Name + cont | |
/* fmt.Println(fc) */ | |
err := smtp.SendMail( | |
"smtp.gmail.com:587", | |
auth, | |
os.Getenv("GMAIL_ACCOUNT"), | |
[]string{p.Email}, | |
[]byte(fc), | |
) | |
if err != nil { | |
log.Fatal(err) | |
} | |
} | |
} | |
type Receiptance struct { | |
Name, Email string | |
} | |
func ReceiptanceIter() chan *Receiptance { | |
r, err := os.Open("gdg.csv") | |
if err != nil { | |
log.Fatal(err) | |
} | |
defer r.Close() | |
csvR := csv.NewReader(r) | |
if err != nil { | |
log.Fatal(err) | |
} | |
items, err := csvR.ReadAll() | |
if err != nil { | |
log.Fatal(err) | |
} | |
items = items[1:] | |
rC := make(chan *Receiptance) | |
go func() { | |
for _, i := range items { | |
rC <- &Receiptance{ | |
Name: i[1], | |
Email: i[2], | |
} | |
} | |
close(rC) | |
}() | |
return rC | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment