If we delay the mail sending, we can't send as the current user.
If we don't fill in the time.Time fields, datastore.Put will fail
because the zero time.Time value is out of its range.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/
6136053
"appengine"
"appengine/datastore"
- "appengine/delay"
"appengine/mail"
"appengine/taskqueue"
"appengine/urlfetch"
return "just now"
}
-var sendMailLater = delay.Func("send-mail", mail.Send)
-
func handleAssign(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
}
// TODO(dsymonds): Use cl.LastMessageID as the In-Reply-To header
// when the appengine/mail package supports that.
- sendMailLater.Call(c, msg)
+ if err := mail.Send(c, msg); err != nil {
+ c.Errorf("mail.Send: %v", err)
+ }
}
}
}
if err != nil && err != datastore.ErrNoSuchEntity {
return err
}
+ if err == datastore.ErrNoSuchEntity {
+ // Must set sentinel values for time.Time fields
+ // if this is a new entity.
+ cl.Created = time.Unix(0, 0)
+ cl.Modified = time.Unix(0, 0)
+ }
cl.LastMessageID = msg.Header.Get("Message-ID")
_, err = datastore.Put(c, key, cl)
return err