Skip to content

Instantly share code, notes, and snippets.

Last active Jul 3, 2018
What would you like to do?
func RegisterRecovery() gin.HandlerFunc {
return func(c *gin.Context) {
defer func() {
if err := recover(); err != nil {
httprequest, _ := httputil.DumpRequest(c.Request, false)
m := gomail.NewMessage()
m.SetHeader("From", "")
m.SetHeader("To", "")
m.SetHeader("Subject", "GoBlog Error")
m.SetBody("text/plain", fmt.Sprintf(`Hi admin,\n unexpected error has happend en GoBlog.
Following there is the user request:\n%s
Following there is the panic error:\n\n%s`, string(httprequest), err))
d := gomail.Dialer{Host: "localhost", Port: 25}
if err := d.DialAndSend(m); err != nil {
c.HTML(http.StatusOK, "index", gin.H{
"title": "Hi! GoBlog.",
"error": "You found an error. The administrator has been notified.",
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment