From be487c824b57c7be4e31e7ea43ce231a39c16f20 Mon Sep 17 00:00:00 2001 From: taknb2nch Date: Sat, 15 Feb 2014 17:30:20 +0900 Subject: [PATCH] Update README.md --- README.md | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 42d521d..f9b59b1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,112 @@ go-pop3 ========== -GolangでのPOP3クライアントの実装サンプルです。 +This is a simple POP3 client package in Go language. + +##Usage +```go +if err := pop3.ReceiveMail(address, user, pass, + func(number int, uid, data string, err error) (bool, error) { + log.Printf("%d, %s\n", number, uid) + + // implement your own logic here + + return false, nil + }); err != nil { + log.Fatalf("%v\n", err) +} +``` +or use the method that implements the command +```go +client, err := pop3.Dial(address) + +if err != nil { + log.Fatalf("Error: %v\n", err) +} + +defer func() { + client.Quit() + client.Close() +}() + +if err = client.User(user); err != nil { + log.Printf("Error: %v\n", err) + return +} + +if err = client.Pass(pass); err != nil { + log.Printf("Error: %v\n", err) + return +} + +var count int +var size uint64 + +if count, size, err = client.Stat(); err != nil { + log.Printf("Error: %v\n", err) + return +} + +log.Printf("Count: %d, Size: %d\n", count, size) + +if count, size, err = client.List(6); err != nil { + log.Printf("Error: %v\n", err) + return +} + +log.Printf("Number: %d, Size: %d\n", count, size) + +var mis []pop3.MessageInfo + +if mis, err = client.ListAll(); err != nil { + log.Printf("Error: %v\n", err) + return +} + +for _, mi := range mis { + log.Printf("Number: %d, Size: %d\n", mi.Number, mi.Size) +} + +var number int +var uid string + +if number, uid, err = client.Uidl(6); err != nil { + log.Printf("Error: %v\n", err) + return +} + +log.Printf("Number: %d, Uid: %s\n", number, uid) + +if mis, err = client.UidlAll(); err != nil { + log.Printf("Error: %v\n", err) + return +} + +for _, mi := range mis { + log.Printf("Number: %d, Uid: %s\n", mi.Number, mi.Uid) +} + +var content string + +if content, err = client.Retr(8); err != nil { + log.Printf("Error: %v\n", err) + return +} + +log.Printf("Content:\n%s\n", content) + +if err = client.Dele(6); err != nil { + log.Printf("Error: %v\n", err) + return +} + +if err = client.Noop(); err != nil { + log.Printf("Error: %v\n", err) + return +} + +if err = client.Rset(); err != nil { + log.Printf("Error: %v\n", err) + return +} +```