code: func (hook *logHook) Fire(entry *logrus.Entry) error {
  	addr := strings.Split(hook.Mail.Addr, ":")
  	if len(addr) != 2 {
  		return errors.New("invalid Mail Address")
  	}
  	host := addr[0]
  	subject := fmt.Sprintf("[%s] %s: %s", entry.Level, host, entry.Message)
  
  	html := `
  	{{.Message}}
  
  	{{range $key, $value := .Data}}
  	{{$key}}: {{$value}}
  	{{end}}
  	`
  	b := bytes.NewBuffer(make([]byte, 0))
  	t := template.Must(template.New("mail body").Parse(html))
  	if err := t.Execute(b, entry); err != nil {
  		return err
  	}
  	body := b.String()
  
  	return hook.Mail.sendMail(subject, body)
  }
docs: // Fire forwards an error to LogHook