Last active
December 16, 2015 08:28
-
-
Save suapapa/5405588 to your computer and use it in GitHub Desktop.
Invitation spammer for Go mini conference Korea 2013.
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 := `님 안녕하세요. | |
고 언어 미니컨퍼러스에 발표 신청을 해 주셔서 감사합니다. | |
이제 슬슬 발표 자료를 마무리해 주실 때가 되셨습니다. | |
컨퍼런스 후에 발표자료를 취합하려 합니다만, | |
이미 자료 준비를 끝내신 경우 구글문서 링크나, 슬라이드 쉐어 링크 등 | |
편하신 방법으로 먼저 답 메일로 전달해 주셔도 무방합니다. :) | |
시간과 장소 다시 한번 상기해 드립니다. | |
* 시간: 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) | |
} | |
items, err := csv.NewReader(r).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